- Module : 관련된 함수, 클래스, 변수 등을 하나의 파일에 모아놓은 코드 묶음
ex) 파이썬 파일(.py) 하나가 하나의 모듈
모듈은 각기 다른 이름의 공간을 가지므로, 이름의 충돌을 피할 수 있다.
- import : 다른 파일에 있는 모듈 불러오기
모듈에 별칭 부여 가능
import math as m # math 모듈 불러오기 / alias m 부여함
result = m.sqrt(81) # math 모듈의 sqrt 함수 사용
print(result) # 9.0
- from : 모듈 전체가 아닌, 모듈 내의 특정 함수, 클래스, 변수를 선택적으로 불러오기
from math import sqrt # math 모듈의 sqrt 함수만 불러오기
result = m.sqrt(81)
print(result) # 9.0
- 모듈에서 여러 항목 불러오기
from math import sqrt, pow # math 모듈의 sqrt, pow 함수 불러오기
sqrt(81) # 9.0
pow(3, 4) # 81.0
- 모듈에서 모든 항목 불러오기
from math import * # math 모듈의 모든 항목 불러오기
※ * 사용 시, 다른 모듈과 이름 충돌 및 가독성 저해 주의해서 사용 요망
- package : 여러 모듈을 논리적으로 묶은 디렉터리 구조
- 패키지 설치 / 업그레이드 / 제거 / 목록확인
pip install requests # 'requests' 패키지 설치
pip install --upgrade requests # 'requests' 패키지 최신 버전으로 업그레이드
pip list # 설치된 패키지 목록 확인
pip uninstall requests # 'requests' 패키지 제거
- 가상 환경 : 프로젝트별로 독립된 파이썬 실행 환경을 만들 때 사용하는 도구
실습을 위해 test 폴더를 만들고 그 안에 'beady'라는 이름의 가상 환경 생성 후 활성화 진행함
# cmd 명령어 참고
# mkdir : 디렉터리 만들기
# cd : 해당 디렉터리 진입
# dir : 파일 및 디렉터리 조회
python -m venv myenv # 'myenv'이라는 이름의 가상 환경 생성
myenv\Scripts\activate # Windows 가상 환경 활성화
deactivate # 가상 환경 비활성화
- 현재 설치되어 있는 패키지 목록 추출이 필요할 때, requirements.txt 파일 생성하기
pip freeze > requirements.txt # 현재 설치된 패키지를 requirements.txt에 기록함
- requirements.txt에 명시된 모든 패키지 설치하기
pip install -r requirements.txt
파이썬의 에러 발생 및 예외 처리
- 파이썬의 에러 발생 예시
# 예시 1. 0으로 나누기
print(10 / 0) # ZeroDivisionError
# 예시 2. 없는 파일 열기
file = open("test.txt", "r") # FileNotFoundError
# 예시 3. 잘못된 인덱스 접근
numbers = [1, 2, 3]
print(numbers[4]) # IndexError
- 파이썬의 예외 처리 : 에러를 통해 프로그램이 종료되는 상황을 예외 처리를 통해 멈추지 않고, 계속 실행되게 함
- try / except 예외 처리
try:
print(10 / 0)
except ZeroDivisionError: # 특정한 예외를 지정해서 처리
print("0으로 나눌 수 없습니다.") # 예외가 발생했을 때 실행할 코드
# 0으로 나눌 수 없습니다.
try:
print(10 / 0)
except:
print("예외가 발생했습니다.") # 모든 예외 처리
# 예외가 발생했습니다.
※ 가급적 특정 예외를 지정하여 처리하는 것이 좋음
- finally : 예외가 발생하지 않더라도 실행
try:
print(10 / 0)
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
finally:
print("프로그램을 종료합니다.")
# 0으로 나눌 수 없습니다.
# 프로그램을 종료합니다.
- Exception 클래스로 모든 에러에 대한 메세지 확인하기
# 1.
try:
10 / 0
except Exception as e:
print(f"에러 확인 {e}")
# 에러 확인 division by zero
# 2.
try:
number[10]
except Exception as e:
print(f"에러 확인 {e}")
# 에러 확인 name 'number' is not defined