TIL/Python

241120 인공지능을 위한 파이썬 - 3주차_2

beady 2024. 11. 20. 00:09

- 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 # 가상 환경 비활성화

 

가상 환경 활성화
가상 환경 진입 후 numpy 설치하기
python 실행 후 numpy 패키지 구동 확인

 

- 현재 설치되어 있는 패키지 목록 추출이 필요할 때, 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