language:python:basic
차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판이전 판다음 판 | 이전 판 | ||
language:python:basic [2016/12/06 15:44] – kieuns | language:python:basic [2024/04/23 22:44] (현재) – 바깥 편집 127.0.0.1 | ||
---|---|---|---|
줄 1: | 줄 1: | ||
+ | 너무 오래 전이라 책을 다시 보면서 정리 | ||
+ | |||
+ | ====== 문법요소 ====== | ||
+ | |||
+ | * pass : 아무것도 하지 않는다 | ||
+ | * 함수 시작 부분에 " 나 """ | ||
+ | |||
+ | ===== import ===== | ||
+ | |||
+ | <code python> | ||
+ | import 모듈 | ||
+ | from 모듈 import 어트리뷰트 | ||
+ | from 모듈 import * | ||
+ | import 모듈 as 별칭 | ||
+ | </ | ||
+ | |||
+ | ===== 자료형 ===== | ||
+ | |||
+ | * 참조는 기본 | ||
+ | * 주소확인 : id(어떤 변수) | ||
+ | * 리스트, 세트, 튜플, 사전 | ||
+ | * 리스트 완전 복사 : copy.deepcopy(XX) | ||
+ | * < | ||
+ | |||
+ | ==== 문자(열) ==== | ||
+ | |||
+ | * (')나 (") 중 아무거나 사용. | ||
+ | * 시작과 끝이 같은 기호로 끝나야 한다. | ||
+ | |||
+ | <code python> | ||
+ | ' | ||
+ | ' | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | |||
+ | |||
+ | * 한글과 같은 문자를 표현하려면 유니코드를 사용 | ||
+ | * 상수형 문자열이라면 u' | ||
+ | str1 = u' | ||
+ | </ | ||
+ | * 변환 해야 한다면,< | ||
+ | ' | ||
+ | </ | ||
+ | |||
+ | * ' | ||
+ | * rjust(NUM) : 오른쪽 정렬 | ||
+ | * ljust / center | ||
+ | * zfill() : 0으로 채우기 | ||
+ | |||
+ | ==== 튜플 ==== | ||
+ | |||
+ | * 읽는 용도의 데이터 설정 | ||
+ | * 괄호 안에 항목을 넣는다. | ||
+ | |||
+ | <code python> | ||
+ | gameDir = (' | ||
+ | </ | ||
+ | |||
+ | gameDir[0]을 치면, ' | ||
+ | |||
+ | ==== 리스트 ==== | ||
+ | |||
+ | * ([,]) 기호 내부에 항목을 선언한다. | ||
+ | * 배열 요소를 탐색하는 여러 방법이 있는데, 나중에 정리하자. | ||
+ | |||
+ | <code python> | ||
+ | gameDir = [' | ||
+ | |||
+ | gameDir[0] # 0번째 항목 리턴 | ||
+ | gameDir.count() # 개수 | ||
+ | gameDir.pop() # 데이터를 얻은 다음 삭제 | ||
+ | </ | ||
+ | |||
+ | ===== 함수 ===== | ||
+ | |||
+ | 함수 선언 방법 | ||
+ | |||
+ | <code python> | ||
+ | def < | ||
+ | < | ||
+ | return < | ||
+ | </ | ||
+ | |||
+ | ===== 스코핑룰 ===== | ||
+ | |||
+ | 전역변수를 사용하고 싶다면, | ||
+ | |||
+ | <code python> | ||
+ | >>> | ||
+ | >>> | ||
+ | global g # g는 전역변수를 가리킨다 | ||
+ | g = 2 | ||
+ | return g+a | ||
+ | </ | ||
+ | | ||
+ | ===== 키워드인자 ===== | ||
+ | |||
+ | 파라미터의(인자) 이름으로 값을 지정해서 사용하는 방법. 파라미터 순서를 지키지 않아도 된다. | ||
+ | |||
+ | <code python> | ||
+ | >>> | ||
+ | >>> | ||
+ | </ | ||
+ | |||
+ | ===== 가변 ===== | ||
+ | |||
+ | 인자 이름 앞에 < | ||
+ | |||
+ | <code python> | ||
+ | >>> | ||
+ | </ | ||
+ | |||
+ | 정의되지 않은 인자 처리 : 인자이름 앞에 < | ||
+ | |||
+ | ===== 람다 ===== | ||
+ | |||
+ | lamda 인자 : < | ||
+ | |||
+ | ===== 이터레이터 ===== | ||
+ | |||
+ | 자료형 데이터에 순환하는 이터레이트를 쓸 수 있다 | ||
+ | |||
+ | <code python> | ||
+ | s = ' | ||
+ | it = iter(s) # 이터레이터를 얻는다 | ||
+ | next(it) # 다음 요소로 이동 | ||
+ | it.__next__() # | ||
+ | </ | ||
+ | |||
+ | * **yield** : 함수를 끝내지 않고 호출한 곳에서 리턴 값을 전달한다. 함수는 계속 실행. 오오 | ||
+ | |||
+ | ===== 비교문 ===== | ||
+ | |||
+ | < | ||
+ | num >= 70 && num < 80 --> 70 <= num < 80 형식으로 사용할 수 있다. | ||
+ | if 70 <= num < 80: ... | ||
+ | </ | ||
+ | |||
+ | ^ and, < | ||
+ | | < | ||
+ | |||
+ | ^ for ^ | ||
+ | | range()함수로 실행 횟수 방식으로 실행 가능 \\ for i in range(10): print(i) # 0 .. 9 까지 11번 반복해서 i를 출력 | | ||
+ | |||
+ | ===== 클래스 ===== | ||
+ | |||
+ | * 클래스 함수의 첫 인자는 self (클래스 자신) | ||
+ | * 클래스 변수 선언시 값 인력 가능, 이건 클래스 변수가 된다. 인스턴스에서 값을 입력하면 다른 변수가 생긴다. | ||
+ | * 클래스에 대해서도 동적으로 멤버 변수 추가 가능. 추가 후 모든 인스턴스에서 사용 가능. | ||
+ | * 인스턴스객체에 동적으로 멤버변수 추가/ | ||
+ | * 인스턴스에서 클래스에 접근하기 __class__ 키워드인자 | ||
+ | * isinstance(INST, | ||
+ | * 생성자 __init__(self, | ||
+ | * 인스턴스 삭제 : del . 레퍼런스가 0이되면 __del__()호출된다. | ||
+ | * 정적메소드와 클래스 메소드 두종류. 클래스 메소드는 self를 받을 첫번째 인자가 필요하다. | ||
+ | * 함수 선언 후, staticmethod(), | ||
+ | |||
+ | ==== 연산자중복정의 ==== | ||
+ | |||
+ | 연산자 중복 정의를 위한 미리 정의된 함수가 있다. ' | ||
+ | |||
+ | ==== 클래스 상속 ==== | ||
+ | |||
+ | < | ||
+ | class Parent: | ||
+ | pass | ||
+ | class Child(Parent): | ||
+ | pass | ||
+ | </ | ||
+ | |||
+ | ==== 메서드 재정의 ==== | ||
+ | |||
+ | 부모 메서드와 자식쪽의 메서드의 이름만 같으면 재정의(오버라이딩)된다. | ||
+ | |||
+ | super()로 부모 클래스 메소드 호출 | ||
+ | |||
+ | ===== 예외처리 ===== | ||
+ | |||
+ | < | ||
+ | try: | ||
+ | < | ||
+ | except < | ||
+ | else: | ||
+ | 예외가 없는 경우 | ||
+ | finally: | ||
+ | 예외 상관 없이 try 블록 실행 후 | ||
+ | |||
+ | raise < | ||
+ | </ | ||
+ | |||
+ | ===== assert ===== | ||
+ | |||
+ | < | ||
+ | assert < | ||
+ | </ | ||
+ | |||
+ | ===== 입출력 ===== | ||
+ | |||
+ | ==== 출력 ==== | ||
+ | |||
+ | <code python> | ||
+ | print(< | ||
+ | </ | ||
+ | |||
+ | <code python> | ||
+ | import sys | ||
+ | sys.stdout.write(' | ||
+ | </ | ||
+ | |||
+ | * rjust(NUM) : 오른쪽 정렬 | ||
+ | * ljust / center | ||
+ | * zfill() : 0으로 채우기 | ||
+ | |||
+ | ==== 포맷팅 ==== | ||
+ | |||
+ | " | ||
+ | |||
+ | **{0}** 대신 사전식 방법 사용 가능 | ||
+ | |||
+ | <code python> | ||
+ | >>> | ||
+ | >>> | ||
+ | print(" | ||
+ | </ | ||
+ | |||
+ | 지역변수를 사전 형식으로 사용 가능. locals() 사용 | ||
+ | <code python> | ||
+ | >>> | ||
+ | >>> | ||
+ | >>> | ||
+ | </ | ||
+ | |||
+ | 사전자료형을 쓰는 경우, 앞에 < | ||
+ | |||
+ | 변수의 인덱스를 사용할 수 있다 | ||
+ | <code python> | ||
+ | numz = [5,4,3,2,1] | ||
+ | print(" | ||
+ | print(" | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== 입력 ==== | ||
+ | |||
+ | <code python> | ||
+ | a = input(' | ||
+ | </ | ||
+ | |||
+ | ===== pickle ===== | ||
+ | 객체류의 데이터를 파일로 저장 | ||
+ | |||
+ | ===== ctypes ===== | ||
+ | |||
+ | C나 dll 에서 함수 불러서 사용하기 | ||
+ | |||
+ | ===== decimal ===== | ||
+ | |||
+ | 정확한 정수와 부동소수점 표현을 위한 클래스 | ||
+ | |||
+ | |||
+ | =====random===== | ||
+ | <code python> | ||
+ | random.random(), | ||
+ | random.sample(N, | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ====== 함수들 ====== | ||
+ | |||
+ | = type(어떤 변수) : 타입체크 | ||
+ | = id(어떤 변수) : 주소확인 | ||
+ | = globals() : 내장함수 확인 | ||
+ | = __builtins__ : 내장함수의 리스트. dir(__builtins__) | ||
+ | = help(xx) : 도움말을 불러온다 | ||
+ | |||
+ | = filter(METHOD, | ||
+ | = zip() : 두개의 리스트를 묶어 튜플로 만든다 | ||
+ | = zip(*인자) : 튜플인자에 *를 붙여 사용하면 리스트로 다시 분리 | ||
+ | = map() : 시퀀스형 객체를 순회하면서 모든 값에 대해 뭔가 처리가 필요할때 (값 갱신) | ||
+ | = join() : 문자열 내장함수, | ||
+ | |||
+ | ===== os 관련 주요 모듈 ===== | ||
+ | |||
+ | = os.getcwd() : 현재 디렉토리 경로 얻기 | ||
+ | = os.chdir( path ) : 디렉토리, | ||
+ | = os.access( path, mode ) : path에 대해서 mode에 해당하는 작업이 가능한지 확인 | ||
+ | = : F_OK 파일 존재 여부 | ||
+ | = : R_OK, W_OK : 읽기 쓰기가 가능한지 확인 | ||
+ | = : X_OK : 실행 가능한가 확인 | ||
+ | = os.sys tem( command ) : command 를 실행하며 성공한 경우 0을 리턴. | ||
+ | |||
+ | |||
+ | ===== 그외 ===== | ||
+ | |||
+ | 파일 복사, | ||
+ | |||
+ | <code python> | ||
+ | import shutil | ||
+ | shutil.copy( 원본파일, | ||
+ | shutil.move( 원본파일, | ||
+ | </ | ||
+ | |||
+ | ====== 추가모듈 ====== | ||
+ | |||
+ | * 스펠체크 : flake8 | ||