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

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

728x90

Do it! 파이썬 스터디 노트: 점프 투 파이썬 전면 - 개정 2판

 

 

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

 

 

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

 

 

 

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

 

📖
미션 범위 (점프 투 파이썬 책 페이지)
일정
7주차
파이썬 날개 달기
5장 05-5 내장 함수 (241pg)
5장 05-6 표준 라이브러리 (257pg)
5장 05-7 외부 라이브러리 (287pg)
* 되새김 문제 (295pg)
8/7-8/13

 

분량이 좀 많았지만 이번 주는 프로그래밍의 꽃이라 할 수 있는 클래스와 함께 모듈, 예외 처리 및 라이브러리에 대해서 배웠습니다. 내가 필요해서 만들 수도 있지만 이미 만들어져서 많은 테스트 과정을 거치면서 검증된 라이브러리가 많기에, 새롭게 프로그램을 만들기 전에 먼저 라이브러리를 살펴보는 것이 매우 중요하다는 것도 알게 되었습니다.

 

어쩐지 저번 주 분량이 무척 많다고 생각했는데, 이번 주 분량까지 한꺼번에 진행해서 그랬습니다. 그래서 지난 스터디 노트를 포함하여 내용 수정하였습니다. 다음 학습부터는 분량을 잘 보고 진행해야겠습니다. 😅

 

 

 

5. 내장 함수: 이미 검증되어 있으며, 외부 모듈과 달리 import가 필요하지 않기 때문에 아무런 설정 없이 바로 사용 가능

- abs: 어떤 숫자를 입력받았을 때, 그 숫자의 절댓값을 리턴하는 함수

- all: for문으로 그 값을 출력할 수 있는 반복 가능한(iterable) 데이터를 입력 인수로 받으며 이 요소가 모두 참이면 True, 거짓이 하나라도 있으면 False를 리턴

- any: all()의 반대로, 반복 가능한(iterable) 데이터를 입력 인수로 받으며 이 요소 중 하나라도 참이 있으면 True를 돌려주고, x가 모두 거짓일 때에만 False를 리턴

- chr: 유니코드 숫자 값을 입력받아 그 코드에 해당하는 문자를 리턴

- dir: 객체가 자체적으로 가지고 있는 변수나 함수를 표시

- divmod: 2개의 숫자를 입력으로 받고, 앞을 뒤로 나눈 몫과 나머지를 튜플로 리턴하는 함수

- enumerate(열거하다): 순서가 있는 자료형(리스트, 튜플, 문자열)을 입력으로 받아 인덱스 값을 포함하는 enumerate 객체를 리턴

- eval(expression): 문자열로 구성된 표현식(1+2, 'hi'+'a')을 입력으로 받아 문자열을 실행한 결괏값을 리턴

- filter(걸러내다): 첫 번째 인수로 함수, 두 번째 인수로 그 함수에 차례로 들어갈 반복 가능한 데이터를 받고 반복 가능한 데이터의 요소 순서대로 함수를 호출했을 때 리턴 값이 참인 것만 묶어서 리턴

- hex: 정수 값을 입력받아 16진수(hexadecimal) 문자열로 변환하여 리턴하는 함수

- id(object): 객체를 입력받아 객체의 고유 주솟값(레퍼런스)을 리턴하는 함수

- input([prompt]): 사용자 입력을 받는 함수로, 입력 인수로 문자열을 전달하면 그 문자열은 프롬프트가 됨

- int: 문자열 형태의 숫자나 소수점이 있는 숫자를 정수 형태로 리턴하는 함수 (정수를 입력받으면 그대로 리턴)

- isinstance(object, class): 첫 번째 인수로 객체, 두 번째 인수로 클래스를 받고, 객체가 그 클래스의 인스턴스인지를 판단하여 참이면 True, 거짓이면 False를 리턴

- len: 입력값 s의 길이(요소의 전체 개수)를 리턴하는 함수

- list(iterable): 반복 가능한 데이터를 입력받아 리스트로 만들어 리턴하는 함수

- map(f, iterable): 함수(f)와 반복 가능한 데이터를 입력으로 받고, 입력받은 데이터의 각 요소에 함수 f를 적용한 결과를 리턴하는 함수

- max(iterable): 인수로 반복 가능한 데이터를 입력받아 그 최댓값을 리턴하는 함수

- min(iterable): max 함수와 반대로, 인수로 반복 가능한 데이터를 입력받아 그 최솟값을 리턴하는 함수

- oct: 정수를 8진수 문자열로 바꾸어 리턴하는 함수

- open: '파일 이름'과 '읽기 방법'을 입력받아 파일 객체를 리턴하는 함수 (읽기 방법을 생략하면 기본값인 읽기 모드로 리턴)

- ord: 문자의 유니코드 숫자 값을 리턴하는 함수

- pow(x, y): x를 y제곱한 결괏값을 리턴하는 함수

- range([start,] stop [,step]): for문과 함께 자주 사용하며, 입력받은 숫자에 해당하는 범위 값을 반복 가능한 객체로 만들어 리턴

- 인수가 하나면 0부터 시작 / 인수가 2개면 시작 숫자와 포함되지 않는 끝 숫자 / 인수가 3개면 세 번째 인수는 숫자 사이의 거리

- round(number [,ndigits]): 숫자를 입력받아 반올림해 리턴해주는 함수로, 두 번째 인수는 반올림하여 표시하고 싶은 소수점의 자릿수(ndigits)

- sorted(iterable): 입력 데이터를 정렬한 후 그 결과를 리스트로 리턴하는 함수

- str(object): 문자열 형태로 객체를 변환하여 리턴하는 함수

- sum(iterable): 입력 데이터의 합을 리턴하는 함수

- tuple(iterable): 반복 가능한 데이터를 튜플로 바꾸어 리턴하는 함수 (튜플을 입력받으면 그대로 리턴)

- type(object): 입력값의 자료형이 무엇인지 알려 주는 함수

- zip(*iterable): 동일한 개수로 이루어진 데이터를 묶어서 리턴하는 함수 → 반복 가능한 데이터(*iterable)를 여러 개도 입력 가능​

 

6. 표준 라이브러리(library): '도서관'이라는 뜻 그대로 원하는 정보를 찾아보는 곳으로 파이썬 사용자들이 만든 유용한 프로그램을 모아 놓은 것

- datetime.date: 연, 월, 일로 날짜를 표현할 때 사용하는 함수

- time: 시간과 관련된 모듈

. time.time: UTC(Universal Time Coordinated, 협정 세계 표준시)를 사용하여 현재 시간을 실수 형태로 리턴하는 함수

. time.localtime: time.time()이 리턴한 실수값을 사용해서 연도, 월, 일, 시, 분, 초, ...의 형태로 바꾸어 주는 함수

. time.asctime: time.localtime가 리턴한 튜플 형태의 값을 인수로 받아서 날짜와 시간을 알아보기 쉬운 형태로 리턴하는 함수

. time.ctime: time.asctime(time.localtime(time.time()))와 동일하지만, 항상 현재 시간만을 리턴

. time.strftime: 시간에 관계된 것을 세밀하게 표현하는 여러 가지 포맷 코드를 제공

※ 출력할_형식_포맷_코드: https://docs.python.org/3/library/time.html#time.strftime

. time.sleep: 주로 루프 안에서 많이 사용하며, 일정한 시간 간격(초)을 두고 루프를 실행 가능

- math.gcd: 최대 공약수(gcd, greatest common divisor)를 구할 때 사용하는 함수

. 공약수: 두 수 이상의 여러 수의 공통된 약수를 말하며, 이중 가장 큰 수가 최대 공약수

- math.lcm: 최소 공배수(lcm, least common multiple)를 구할 때 사용하는 함수

. 최소 공배수: 두 수의 공통 배수 중 가장 작은 수

- random: 난수(규칙이 없는 임의의 수)를 발생시키는 모듈

. random.random(): 0.0에서 1.0 사이의 실수 중에서 난수 값을 리턴

. random.randint(1, 55): 1에서 55 사이의 정수 중에서 난수 값을 리턴

. random.choice: 입력으로 받은 리스트에서 무작위로 하나를 선택하여 리턴

. random.sample: 리스트의 항목을 무작위로 섞기

- itertools.zip_longest(*iterables, fillvalue=None): 같은 개수의 자료형을 묶는 파이썬 내장 함수인 zip과 똑같이 동작

. 전달한 반복 가능 객체(*iterable)의 길이가 서로 다르다면 긴 객체의 길이에 맞춰 fillvalue에 설정한 값을 짧은 객체에 채울 수 있음

- itertools.permutation(iterable, r): 반복 가능 객체 중에서 r개를 선택한 순열을 이터레이터(반복 가능한 객체)로 리턴하는 함수

- itertools.combination(iterable, r): 반복 가능 객체 중에서 r개를 선택한 조합을 이터레이터로 리턴하는 함수

. 중복을 허용하는 경우: itertools.combination_with_replacement 사용

- functools.reduce(function, iterable): 함수(function)를 반복 가능한 객체(iterable)의 요소의 차례대로(왼쪽에서 오른쪽으로) 누적 적용하여 이 객체를 하나의 값으로 줄이는 함수

- operator.itemgetter: sorted와 같은 함수의 key 매개변수에 적용하여 다양한 기준으로 정렬할 수 있도록 도와주는 모듈

. operator.attrgetter(): 리스트의 요소가 튜플이 아닌 다른 클래스의 객체라면 이를 적용하여 정렬

- shutil: 파일을 복사(copy)하거나 이동(move)할 때 사용하는 모듈

- glob: 파일을 읽고 쓰는 기능이 있는 프로그램을 만들 때, 특정 디렉터리에 있는 파일 이름 모두를 알아야 할 때 사용하는 모듈

. glob(pathname): 디렉터리 안에 파일들을 읽어서 리턴하며 *, ? 등 메타 문자 사용가능

- pickle: 객체의 형태를 그대로 유지하면서 파일에 저장하고 불러올 수 있게 하는 모듈

- os: 환경 변수나 디렉터리, 파일 등의 OS 자원을 제어할 수 있게 해주는 모듈

. os.environ: 내 시스템의 환경 변숫값을 알고 싶을 때

. os.chdir: 디렉터리 위치 변경 | os.getcwd: 디렉터리 위치 돌려받기

. os.system: 시스템 명령어 호출 | os.popen: 실행한 시스템 명령어의 결괏값 돌려받기

. os.mkdir: 디렉터리를 생성 | os.rmdir: 빈 디렉터리를 삭제 | os.unlink: 파일을 삭제 | os.rename: 파일 이름을 변경

- zipfile: 여러 개의 파일을 zip 형식으로 합치거나 이를 해제할 때 사용하는 모듈

. 압축 방법에 따라 compression, 압축 수준에 따라 compressionleven 옵션을 사용

- threading: 스레드를 다루는 모듈

. 컴퓨터에서 동작하고 있는 프로그램을 프로세스(Process)라고 하며, 보통 1개의 프로세스는 한 가지 일만 하지만 스레드(Thread)를 사용하면 한 프로세스 안에서 2가지 또는 그 이상의 일을 동시에 수행 가능

① threading.Thread(target=long_task): 스레드를 생성

② threading.Thread(target=long_task).start(): 스레드를 실행

③ threading.Thread(target=long_task).join(): 스레드가 종료될때까지 대기

- tempfile: 파일을 임시로 만들어서 사용할 때 유용한 모듈

. tempfile.mkstemp(): 중복되지 않는 임시 파일의 이름을 무작위로 만들어서 리턴

. tempfile.TemporaryFile(): 임시 저장 공간으로 사용할 파일 객체를 리턴하며 기본적으로 바이너리 쓰기 모드(wb), f.close()가 호출되면 이 파일은 자동으로 삭제

- traceback: 프로그램 실행 중 발생한 오류를 추적하고자 할 때 사용하는 모듈

. traceback.format_exc(): 오류 추적 결과를 문자열로 리턴하는 함수

- json: JSON 데이터를 쉽게 처리하고자 사용하는 모듈

. json.load(파일_객체): JSON 파일을 읽을 때 사용하며 읽은 데이터를 딕셔너리 자료형으로 리턴 → 문자열을 변환할 때는 loads() 사용

. json.dump(딕셔너리, 파일_객체): 딕셔너리 자료형을 JSON 파일로 생성할 때 사용

- urlib: URL을 읽고 분석할 때 사용하는 모듈

- webbrowser: 파이썬 프로그램에서 시스템 브라우저를 호출할 때 사용하는 모듈

. open_new(): 웹 페이지를 새창으로 여는 경우 사용

. open(): 이미 열린 브라우저로 원하는 사이트를 열 때 사용

 

7. 외부 라이브러리: 외부 라이브러리는 pip(핍) 도구를 이용하여 설치해서 사용

- pip: 파이썬 모듈이나 패키지를 쉽게 설치할 수 있도록 도와주는 도구

. https://packaging.python.org/en/latest/tutorials/installing-packages/

- Faker: 테스트용 가짜 데이터를 생성할 떄 사용하는 라이브러리

. https://faker.readthedocs.io/en/master/

- sympy: 방정식 기호(symbol)를 사용하게 해 주는 외부 라이브러리

. https://www.sympy.org/en/index.html → 미지수가 2개 이상이면 결괏값은 리스트가 아닌 딕셔너리로 리턴

 

 
 
 
 

 

 

 

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

 

책의 라이브러리 부분이 이전 개정판에 비해서 많이 달라졌습니다. 표준과 외부로 분리되고 새로운 라이브러리가 추가되었으며 삭제된 부분도 있습니다. 덕분에 '되새김문제'도 새로운 문제가 5개 정도 더 추가되었습니다. 그 때문에 이전에 모르던 라이브러리에 대해서 새롭게 알게 되었고, 다른 책을 보는 듯해서 신선했습니다. 아직 예제를 따라 해 보는 수준밖에는 안 돼서, 이해하고 소화하려면 몇 번씩 반복해서 살펴봐야겠습니다.

 

□ 1년 전 스터디 노트 (개정판)

https://cafe.naver.com/doitstudyroom/38472

 

 

728x90