* 이 포스팅은 유튜브 "널널한 교수의 고급 파이썬" 강의를 듣고 요약한 포스팅임
1. 반복가능 자료형과 반복자
- 반복자
데이터를 꺼내어 이용할 수 있는 객체
리스트, 튜플, range ... (iterable한 객체)
__next__() 속성을 가짐
: 해당 메소드로 차례차례 항목을 반환함
list -> iter() => 반복자객체 생성
반복자객체.next() (or __next__() ) 시 항목 반환
인덱스가 넘어갈 경우 Stop Iteration 예외 발생
2. 반복자 객체 생성
def __iter__(self):
def __next__(self):
# => 반복자는 이 함수를 가져야 함
3. 내장 함수
반복 가능한 객체에 있는 내장 함수
min, max
all ( 원소 모두 참일 때 True반환), any (원소 중 참이 하나라도 있을 경우 True반환)
ascii, bool(반복가능 객체의 존재여부), filter, iter
4. Integer
-5~256 : 미리 생성해둔 객체이므로 항상 id값이 같음
잦은 객체 생성과 참조변경은 시스템 수행속도를 떨어뜨림
- with
Context manager에 의해 실행되는 __enter__(), __exit()__을 정의하여
with 구문과 body의 앞부분과 뒷부분 실행코드를 대신할 수 있다.
__enter__() : try구문
__exit__() : finally구문 - Generator
필요할 때마다 객체를 메모리에 올려 사용. 한번 출력하면 못씀(보관안함)
메모리, 수행시간 절약
- yield
return문과 비슷 (단, 제너레이터를 반환)
필요할 때마다 값을 돌려줌
5. 표준 라이브러리
내장함수
- 텍스트 처리 관련 모듈
String : 대소문자 변환. 포매팅
re : 정규 표현식 사용
difflib : 두 문자의 차이점을 표현해주는 모듈
textwrap : 텍스트 줄 바꿈 및 채우기
readline : 파일 읽기
- except로 에러처리
6. Traceback
역추적. 함수들이 서로서로 호출하는 단계를 스택에 저장함.
예외가 발생한 지점의 호출연결고리를 추적하는 기능
- Syntax error : EOL에러 발생 (문자열 중에 문법에 맞지 않는 행 발견)
- Name error : 정의 안한 변수를 사용할 경우
- TypeError : 인자, 자료형 에러
- ValueError : 자료형 안맞음
- IndexError : 리스트 인덱스가 범위를 벗어남
- FileNotFoundError
7. self
파이썬의 self는 클래스의 인스턴스를 지칭
self키워드를 통해 클래스의 메소드와 속성에 접근할 수 있음
모든 메소드의 첫번째 매개변수는 자기자신을 가리키는 self 변수.
즉, 이 메소드를 호출한 현재 객체를 의미함
8. 람다함수
람다 표현식 (익명 함수)
표현식 안에서 새 변수 선언 못함
한 줄의 표현식 사용하기. return 못함
(lambda x, y: x+y)(100, 200)
9. Raise
에러 발생시키기
raise ValueError("Digits(s) required")
except ValueError as e:
print(e)
# 해당 에러를 발생시키고 except 문에서 에러를 잡아 에러가 가진 문자열을 출력함
10. assert
해당 명령이 True면 아무 작동을 하지 않지만 False일 경우 AssertError가 발생함
a = 5
assert a == 3
# AsssertionError 발생
11. 파일
- 바이너리
응용프로그램이 알아들을 수 있음
.EXE, .DOCX, .HWP ... - Text File
ASCII 코드 문자열
.TXT, .PY, .HTML
출처 : 유튜브 널널한 교수의 코딩 클래스 - 고급 파이썬 :
https://www.youtube.com/watch?v=RJqvaj8MI_o