파이썬 정리 본문

파이썬

파이썬 정리

keydisk 2016. 2. 24. 19:51

1. print("sadasd");

2. print('-' * 10) ->  '-' 10번반복

3. str() 함수 : 문자화

   int()

   float()

4. 포맷 문자열

     printf(' aa {} cc'.format('bb'))

     printf(' aa {} {} {} '.format('bb','cc','dd'))

     printf(' aa {0} {1} {0} {1} '.format('bb','cc'))  ->{0}은 첫번쨰 인자, {1}은 두번째 인자

     printf('{0:8} '.format('aaa')) -> {0:8} 첫번쨰 인자를 출력하는데 최소 8글자

     printf('{0:8} -- {1:<8} '.format('aaa')) -> {0:8} 첫번쨰 인자를 출력하는데 최소 8글자, <왼쪽정렬, ^가운데 정렬, > 오른쪽 정렬

     printf('{0:8} -- {1:<8.2f} '.format('aaa',2.3333)) -> .2f는 소수점 둘쨰자리까지만 출력

5. 입력받기

   aa = input('aaaaaaaa')

  print(' {} asdads'.format(aa))

파이썬에서는 수를 입력받는 input 과 문자열을 입력받는 raw_input 이 있습니다.

input에 문자열을 넣으면 오류가 나고,
raw_input에 1을 넣으면 문자열 '1'이 됩니다.
즉 a+1 같은 연산을 하게 되면 오류가 납니다.
(문자에 숫자를 더할수 없으므로)

 

6.수식

  지수: ** 

 

7.주석

   # 주석

  """ 주석시작

        12342423

         23424

        23424234 """

  8. 불리언 연산자

     and, or ,not

 

9. 조건문

    if 아래 들여쓰기 한 코드가 실행 => 들여쓰기한 코드를 코드불록이라 함

    들여쓰여진 깊이보다 덜 들여써진 부분을 만나면 끝난다 (들여쓰기 = 4개의 공백문자)

   if구문은 항상 콜론(:)으로 끝남

 

   age=31

if age > =35:

    print("1111")

elif age >=30:

    print("2222")

else:

    print("3333")

 

print("4444")

 

10. 함수

   def 키워드, 이름뒤  항상 괄호,괄호안에 파라미터 이름, 여러개일 경우 쉼표, 함수 정의 끝에는 콜론

   -  def sayhi():

           print("hello")

   -  def sathi(name):

          print("HELLO {}".format(name))

   -  def sayhi(name='kkk'):     -> 디폴트 값 지정

         print("HELLO {}".format(name))

   -  def sayhi(first,last):     -> 인자 이름 지정

         print("HELLO {} {}".format(first,lst))

       sayhi(first="sss", last="vvv") //이름을 이용하여 값을 지정인자에 전송, 이름을 지정하면 순서는 상관없다

    - def sayhi(first,last):     

           """" docstring 입력 """"

          print("HELLO {} {}".format(first,lst))

       help(sayhi)

    - def is_odd(number):

             """ odd check """" 

             if number % 2 == 0:

                      return False

            else:

                      return True

        print(is_odd(7))

11.리스트

    animals = ['1','2','3']

     print(animals[0])

     print(animals[1])

    print(animals[2])

 animals[0] ='k'

print(animals[-1])         -> 색인 -1은 리스트의 마지막 원소, -2는 뒤에서 2번쨰 원소

animals.append('y')     -> 원소추가

animals.extend(['kk','yy'])   -> 여러원소 추가

animals.insert(0,'ky' )  -> 특정위치에 추가(0번쨰에 추가)

 

슬라이스

kkk = animals[1:4] 슬라이스: 원소 1~3까지, 첫번쨰 인자(1)는 포함이지만 뒤의 인자(4)는 포함안함 , 첫번쨰 인자 생략시 0, 두번쨰 인자 생략시 리스트내 원소수

kkk = animals[:4]

kkk = animals[-2:]  -> 뒤에서 두번째 부터 끝까지  

yyy ='복슬강아지'[1:3] -> yyy=슬강  임

animals.index('1') -> 처음발견한 위치의 색인값, 발견하지 못하면 예외발생

 

예외

animals = ['1','2','3']

try:

index = animals.index('kk')

except:

index = '???'

print(index)

 

리스트 순회

for animal in animals:

print(animal)

 

index=0

while index < len(animals):

print(animals[index])

index +=1

 

리스트 정렬

sort() 객체함수

sorted() 내장함수 -> 새로운 리스트 리턴

      a =sorted(animals)

리스트 병합

     all =animals + moreanimals

 

범위

   range()함수, 인자값은 포함하지 않음

for n in range(3) -> 0~2까지

for n in range(1,3) -> 1,2까지

for n in range(1,10,2) -> 1,9까지, 스탭값은 2 : 1,3,5,7,9

 

12. 딕션너리

     키-값 쌍 보관 데이터 타입

    kkk = {'ky' : '123-4567' , 'yk':'567-8901' }

    ky_phone = kkk['ky']

    kkk['yk'] = '123-1234'

   ttt = { 'ky' : ['111-2222','222-3333'],     //<- 리스트형, 중괄호 내부 들여쓰기는 무시

           'yk' : '345-4355' } 

  for n in ttt['ky']:

     print(n)

 

   원소추가

   kkk['sss'] = '333-4444'

 

  원소제거

  del kkk['sss']

 

키 찾기

if 'ky' in ttt:

    print(kkk['ky'][0]) 

 

값 찾기

print('234-2344' in ttt.values())        values() 함수는 값만 리스트 형태로 반환 , 값이 있는지 없는지 보려면 in 리스트 형태로 사용, => 결국 이 예문은 True/False 찍힘

 

순환

for t in kkk:  // t는 키변수

     print(' {0} {1}'.format(t, kkk[t])

 

for t1, t2 in kkk.items():    # 첫번쨰 변수는 키, 두번째는 값

    print('{0] {1}'.format(t1,t1))

 

13. 튜플

     불변 리스트

     원소가 하나인 튜플을 만들려면 tuplr=(ele,) 처럼 쉼표가 있어야 한다  (괄호 사용!!)

     del tuple로 튜플전체 삭제가능

    list = list(tuple) # 튜플의 리스트화

    tuple = tuple(list) #리스트의 튜플화

    type() 함수는 객체의 타입을 알려줌                               

  

  순환

   for day in week:

 

   airports = [ ("111", 'icn"), ( '222' , 'LAX') ]

   for (airport,code) in airports:

 

  대입

  week = ('1','2','3')

  (one,two,three) = week

  print(one)

 

  info=['111-2222','222-333']

 (kk,bb) = info

 

 함수에서 튜플반환

  def hl(number)

        highest = max(number)

        lowest = min(number)

         return (highest,lowest)

 

14. 파일

   open(파일경로) , 경로는 '/'를 사용

   hosts =open('/etc/hosts')

  contents = hosts.read()   #파일을 다 읽음

  print(contens)

  hosts.close()

  hosts.closed 속성 => 열러있다면 False, 닫혀있다면 True

   if not hosts.closed:

       hosts.close()

 

  위치

   hosts.seek(0) # 파일 첨

   hosts.seek(5) #5 바이트

   hosts.tell() # 파일 위치 얻기

 

  자동 파일 닫기

  with open('/etc/hosts') as hosts:   #코드블록이 끝나면 자동으로 파일닫힘

         print(hosts.read())

 

  한줄씩 읽기

  with open('file.txt') as thefile:

       for line in thefile:

           print(line)

 

 line.rstrip() # 캐리지 리턴 제거

 

파일 모드

thefile.mode  #현재 모드

with open('file.txt','w') as thefile

       thefile.write('dsfsf');

  이진모드

with open('file.jpg','eb') as thefile

       thefile.write('dsfsf');

 

try:

con = open('con.txt').read()

excwpt:

     con=[]

print(len(con))

 

15.라이브러리

   import 라이브러리 

  import time

  print(time.asctime())

 

 모듈의 특정 메소드만 사용시 -> from time import asctime

 from time import asctime,sleep

 print(asctime())   #모듈명 없이 사용

 

 from time import *

 

import time 

dir(time) #모듈안에 메소드,클래스 보기

 

모듈탐색 경로

import 시 sys.path의 경로에서 모듈을 찾음. zip파일 내부에서도 찾음

import sys

for path in sys.path

    print(path)

 

경로추가

import sys

sys.path.append('/asds/asdasd/asd')

for path in sys.path

    print(path)

 

파이썬 내부적으로 __name__변수를 __main__으로 설정하여 동작

하지만 다른 프로그램에서 import시에는 __name__ 변수 설정안함

__name__에는 호출 프로세스의 이름을 의미

if __name__ == '__main__':

     main()

 

 

help(socket.gethostnmame) 입력시 온라인 도움말 확인가능