[10주차] Do it! 파이썬 스터디 노트 - 점프 투 파이썬

2023. 9. 16. 22:16Python/Do it! 파이썬 스터디 2기

728x90

Do it! 파이썬 스터디 노트 - 점프 투 파이썬

 

 

1. 《Do it! 점프 투 파이썬》 -전면 개정 2판 글감을 추가해주세요. 

 

 

2. 미션 인증샷을 남겨 주세요! (책과 함께 공부하는 모습을 찍어주세요! 책과 모니터가 함께 보이면 더 좋아요!)

 

 

 

3. 이번 미션을 진행하면서 좋았던 점이나 어려웠던 점 또는 새로 알게 된 점이 있었나요? (200자 내외 / 실습 부분을 캡쳐해도 좋아요!)

 

📖
미션 범위 (점프 투 파이썬 책 페이지)
일정
10주차
7장 파이썬으로 날아오르기 (327pg - 352pg)
8/28-9/3

 

파이썬 표준 라이브러리 중 몇 개는 고급 개념을 알아야만 이해할 수 있기에 이를 다뤄봤습니다. 하지만 필수는 아니며 입문자에게는 조금 어려운 내용이라 건너뛰어도 괜찮다고하여 안도하였습니다. 하지만 더 깊이 있는 파이썬 프로그램을 작성하려면 관심을 두고 익혀야 하는 내용입니다.

 

 

1. 파이썬과 유니코드

- 유니코드(unicode): 파이썬에서 사용하는 문자열은 모두 유니코드로 모든 나라의 문자를 모두 포함하며, 세계 표준으로 자리 잡음

. 인코딩(encoding): 유니코드 문자열을 바이트 문자열로 바꾸는 것

. 디코딩(decoding): 인코딩한 바이트 문자열을 유니코드 문자열로 변환

- 파일을 읽거나 네트워크를 통해 데이터를 주고받을 때 추천하는 방법: open()에는 encoding을 지정하여 파일을 읽는 기능 존재

. 입력으로 받은 바이트 문자열은 되도록 빨리 유니코드 문자열로 디코딩

. 함수나 클래스 등에서는 유니코드 문자열만 사용

. 입력에 대한 결과를 전송하는 마지막 부분에서만 유니코드 문자열을 바이트 문자열로 인코딩해서 반환

 

2. 클로저와 데코레이터

- 클로저(closure): 함수 안에 내부 함수(inner function)를 구현하고 그 내부 함수를 리턴하는 함수

. 이때 외부 함수는 자신이 가진 변숫값 등을 내부 함수에 전달 가능: 함수가 함수를 리턴 가능

- 데코레이터(decorator): 기존 함수를 바꾸지 않고 기능을 추가할 수 있게 만드는 클로저 (함수를 꾸미는 함수)

. @ 문자를 이용해 함수 위에 적용하여 사용 가능: @+함수명

. *args와 **kwargs 매개변수 이용: 전달받아야 하는 기존 함수의 입력 인수를 알 수 없는 경우

※ *args: 모든 입력 인수를 튜플로 변환하는 매개변수, **kwargs: 모든 '키=값' 형태의 입력 인수를 딕셔너리로 변환하는 매개변수

 

3. 이터레이터와 제너레이터

- 이터레이터(iterator): 호출 시 계속 그다음 값을 리턴하는 객체

. 특징: for문이나 next로 그 값을 한 번 읽으면 그 값을 다시는 읽을 수 없음

- 제너레이터(generator): 이터레이터를 생성해 주는 함수 (결과를 반환할 때는 return 대신 yield 키워드를 사용)

. 자세한 설명(코딩도장): https://dojang.io/mod/page/view.php?id=2412

 

4. 파이썬 타입 어노테이션

- 정적 언어: 자바처럼 한 번 변수에 타입을 지정하면 변경 불가 | 동적 언어: 타입에 자유로워 유연한 코딩이 가능(파이썬)

- 타입 어노테이션 기능: 변수와 함수에 타입을 지정 가능

. 타입에 대한 힌트를 알려 주는 정도만 지원: 정수(int), 문자열(str), 리스트(list), 튜플(tuple), 딕셔너리(dict), 집합(set), 불(bool)

→ 체크(오류를 발생)하려면 외부 라이브러리인 mypy 설치하여 사용

 

 

 

4. 스터디를 같이 진행하는 분들과 (동지들과!) 함께 이야기 나누고 싶은 부분이 있다면 작성해 주세요!

 

마지막 단원인 '파이썬 타입 어노테이션' 실습을 IDLE에서 할 수 있다는 것을 알고계셨나요? os 모듈을 import 후, os.system()과 os.popen()을 활용하면 결과값을 IDLE에도 표시할 수 있습니다. 물론 표시하기 위해 op.popen.read()를 사용해야 하는데, 여러분도 이를 활용해서 cmd창으로 이동하지 않고 IDLE에서 계속 실습하실 수 있습니다.

 

https://docs.python.org/ko/3/library/os.html?highlight=os#module-os

https://docs.python.org/ko/3/library/os.html?highlight=os%20system#os.system

https://docs.python.org/ko/3/library/os.html?highlight=os%20popen#os.popen

 

import os

exc1 = 'cd E:/Doit/JumpToPython/'
exc2 = 'e:'
exc3 = 'mypy typing_sample.py'
exc4 = 'mypy typing_sample2.py'
os.system(exc1)
os.system(exc2)
f1 = os.popen(exc3)
print(f1.read())
f1.close()
f2 = os.popen(exc4)
print(f2.read())
f2.close()
 

 

728x90