모듈
모듈이란 이미 누가 만들어 놓은 알고리즘 집합이다.import random #random 모듈 호출 print(random.randint(1,100)) # 1에서 100 중에 임의의 숫자 선택
우선 새파일을 만든다.
파일 이름은 'Area.py' 로 정하겠다.
Area.py
def triangle (height, width) : #높이, 밑변의 길이를 적으면 삼각형 넓이 구하는 함수 return (1/2)* height * width def square (height, width) : #높이, 밑변의 길이를 적으면 사각형 넓이 구하는 함수 return height * width
모듈을 불러온 뒤 높이가 2, 밑변이 3인 사각형의 넓이를 구해 보겠다.
import Area
print(Area.square(2,3))
6
✅ 모듈 불러오기
import Area
print(Area.square(2,3))
✅ as
import Area as ar
print(ar.square(2,3))
✅ from
모듈에서 특정 함수만 필요할 때 사용
from Area import square
print(square(2,3))
__name__
전역변수
__name__
에는 모듈 이름이 저장되거나__main__
이 저장된다.
Area.py
def triangle (height, width) : #높이, 밑변의 길이를 적으면 삼각형 넓이 구하는 함수 return (1/2)* height * width def square (height, width) : #높이, 밑변의 길이를 적으면 사각형 넓이 구하는 함수 return height * width print(f'__name__: {__name__}')
__name__: __main__
이 상황에서 다른 파일에서 Area 모듈을 불러오면 어떻게 나오는지 확인해보자.
import Area
print(Area.square(2,3))
__name__: Area 6
❗ __main__
을 통해 실행 파일을 확인할 수 있다.
if __name__=='__main__' :
위 파일이 '실행 파일'인 경우 실행문
패키지
모듈들의 그룹. 패키지를 이용해 모듈들을 관리하기 편해진다.
site-packages에 있는 모듈은 어디서나 사용 가능!
import sys
for path in sys.path:
print(path)
/Users/gyol/Documents/pythonEx/project/2-001 /Users/gyol/Documents/pythonEx/project /Library/Frameworks/Python.framework/Versions/3.11/lib/python311.zip /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11 /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload /Users/gyol/Documents/pythonEx/project/lib/python3.11/site-packages
이 디렉토리에 모듈을 저장하면 항상 사용이 가능해진다!!
import math # 수학 관련 모듈
print(math.factorial(5)) # 5! 구하기
120
import random # 난수 관련 모듈
print(random.randint(1,10)) # 1 이상 10 이하 숫자 중에 랜덤 뽑기
6
import time # 시간 관련 모듈
print(time.localtime())
time.struct_time(tm_year=2023, tm_mon=12, tm_mday=12, tm_hour=14, tm_min=21, tm_sec=6, tm_wday=1, tm_yday=346, tm_isdst=0)
그 외
import numpy as np #데이터 표현 모듈
import pandas as pd #데이터 프레임 분석 모듈
import matplotlib.pyplot as plt #데이터 시각화 모듈