카테고리 없음

[Python 기초] 반복 가능 자료형

noahkim_ 2021. 7. 31. 11:22

* 이 포스팅은 유튜브 "널널한 교수의 고급 파이썬" 강의를 듣고 요약한 포스팅임

 

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