모듈
개요
과학자, 수학자가 모든 이론을 새로 만들거나 증명하지 않는 것처럼 개발자 또한 프로그램 전체를 모두 혼자 힘으로 작성하는 것은 드문 일
이미 다른 프로그래머가 이미 작성해 놓은 수천, 수백만 줄의 코드를 사용하는 것은 생산성에서 매우 중요한 일
모듈 (Module)
한 파일로 묶인 변수와 함수의 모음특정한 기능을 하는 코드가 작성된 파이썬 파일(.py)
모듈 예시
파이썬의 math 모듈
파이썬이 미리 작성해 둔 수학 관련 변수와 함수가 작성된 모듈
모듈 import
모듈 가져오기
모듈 내 변수와 함수에 접근하려면 import 문이 필요
내장 함수 help를 사용해 모듈에 무엇이 들어있는지 확인 가능
모듈 사용하기
‘. (dot)’은“점의 왼쪽 객체에서 점의 오른쪽 이름을 찾아라“ 라는 의미의 연산자
명시적인 코드(구체적으로 설명이 다 적혀있는 코드)
짧게 쓰는 것보다 명시적인 것이 더 중요!
모듈을 import하는 다른 방법
from 절을 활용해 특정 모듈을 미리 참조하고 어떤 요소를 import 할지 명시
math.으로 작성하지 않아도 활용 가능 (표기 방법이 다르다)
모듈 주의사항
직접 정의한 모듈 사용하기
파이썬 표준 라이브러리
Python Standard Library
파이썬 표준 라이브러리
패키지 (Package)
패키지 사용하기 (1/2)
패키지 사용하기 (2/2)
PSL 내부 패키지
설치 없이 바로 import하여 사용
외부 패키지
pip를 사용하여 설치 후 import 필요
pip (파이썬 패키지 관리자)
외부 패키지들을 설치하도록 도와주는 파이썬의 패키지 관리 시스템
패키지 설치
requests 외부 패키지 설치 및 사용 예시
패키지 사용 목적
모듈들의 이름공간은 구분하여 충돌을 방지 모듈들을 효율적으로 관리하고 재사용할 수 있도록 돕는 역할
조건문
개요
조건문 (Conditional Statement)
if / elif / else
파이썬 조건문에 사용되는 키워드
‘if’ statement
조건문 예시
복수 조건문 예시
반복문 (Loop Statement)
for / while
파이썬 반복문에 사용되는 키워드
내가 끝을 알면 for, 끝을 모르면 while
‘for’ statement
반복 가능한 객체 - 문자열, list, dict, set, tuple
반복 가능한 객체 (iterable)
반복문에서 순회할 수 있는 객체 (시퀀스 객체 뿐만 아니라 dict, set 등도 포함)
for 문 원리
리스트 내 첫 항목이 반복 변수에 할당되고 코드블록이 실행
다음으로 반복 변수에 리스트의 2번째 항목이 할당되고 코드블록이 다시 실행
... 마지막으로 반복 변수에 리스트의 마지막 요소가 할당되고 코드블록이 실행
단수형, 복수형 고려해서 변수 이름을 작성하는게 좋음
인덱스로 리스트 순회
중첩 리스트 순회
‘while’ statement
사용자 입력에 따른 반복
while 문은 반드시 종료 조건이 필요
for / while
파이썬 반복문에 사용되는 키워드
for
while
적절한 반복문 활용하기
for
반복 횟수가 명확하게 정해져 있는 경우에 유용
예를 들어 리스트, 튜플, 문자열 등과 같은 시퀀스 형식의 데이터를 처리할 때
while
반복 횟수가 불명확하거나 조건에 따라 반복을 종료해야 할 때 유용
예를 들어 사용자의 입력을 받아서 특정 조건이 충족될 때까지 반복하는 경우
반복 제어
for문과 while은 매 반복마다 본문 내 모든 코드를 실행하지만 때때로 일부만 실행하는 것이 필요할 때가 있음
break
반복을 즉시 중지
continue
다음 반복으로 건너뜀
continue 예시
break와 continue 주의사항
break와 continue를 남용하는 것은 코드의 가독성을 저하시킬 수 있음
특정한 종료 조건을 만들어 break을 대신하거나, if 문을 사용해 continue 처럼 코드를 건너 뛸 수도 있음
약간의 시간이 들더라도 가능한 코드의 가독성을 유지하고 코드의 의도를 명확하게 작성하도록 노력하는 것이 중요
더 명시적인 코드를 작성하는 것이 중요!
List Comprehension
간결하고 효율적인 리스트 생성 방법
Comprehension을 남용하지 말자.
"Simple is better than complex"
"Keep it simple, stupid
pass
아무런 동작도 수행하지 않고 넘어가는 역할
pass 예시 (1/3)
enumerate(iterable, start=0)