pocket

[Python] 모듈, 패키지, 라이브러리 본문

Python

[Python] 모듈, 패키지, 라이브러리

jpocket 2025. 4. 3. 00:29
반응형
  • 모듈(module): .py 확장자의 파일. 파일 안에 변수나 함수, 클래스 등을 저장할 수도 있고, 모듈 자체가 실행할 수 있는 코드
  • 패키지(package): 모듈 여러 개를 묶은 것
  • 라이브러리(library): 여러 패키지와 모듈을 모아둔 것

👉 셋 사이의 관계: 라이브러리 ≥ 패키지 ≥ 모듈

 

 

 


모듈

🔶 random 모듈

import random

 

🔶 random()

# Q. 5개의 난수를 출력해 보세요.
import random as r
for i in range(5):
    print(r.random())

 

🔶 randint(a, b)

r.randint(1,6)
# 1 <= N <= 6 사이의 정수를 반환

 

🔶 seed()

같은 시드값을 사용하면 항상 같은 순서의 난수가 생성됨.

 

 

 


 

🔶 math 모듈

math 모듈은 수학과 관련된 모듈이다. 출력값은 대부분 float 자료형이다.

💬 괄호가 필요하지 않다는 점을 주의해서 봐주시면 좋을 것 같다.

  • pi: 파이값
  • e: 자연상수값
  • pow(실수형) vs ** (정수형)
  • sqrt: 제곱근
  • factorial: 팩토리알
  • ceil: 올림
  • floor: 버림

🔶 파이썬 기본 내장 함수 round() : 반내림, 반올림하는 함수

math모듈이 아니라는 점을 기억.

파이썬 기본 내장 함수이기 때문에 m.round() 하면 오류 발생한다.

 

 


🔶 time 모듈

🔶 sleep(): 타이머

ex) sleep(5): 5초 타이머 개념

 

🔶 localtime()

  • 년도(tm_year)
  • 월(1~12)(tm_mon)
  • 일(tm_day)
  • 시(0~23)(tm_hour)
  • 분(tm_min)
  • 초(tm_sec)
  • 몇번째 요일(월:0~일:6)(tm_wday)
  • 올해의 몇번째 날(tm_yday)
  • 썸머타임의 여부(tm_isdst:-1,0,1)

🔶 keyword 모듈

  • kwlist: 예약어를 리스트로 출력
  • iskeyword(): 그 값이 키워드인지 확인하는 모듈

모듈을 불러오는 방법

🔶 from import: 모듈 일부분만 가져오기

from math import pi
pi

 

🔶 from import: 모듈 여러 개 가져오기

from math import e, pi, pow
pi, e, pow(2,5)

 

🔶 from 모듈 import * : 모듈 전체 가져오기

 

 

 


❓ from math import * 와 import math 의 차이점

1️⃣ import math

import math

print(math.sqrt(16))  # 4.0
print(math.pi)        # 3.141592653589793

✅ math 모듈을 그대로 가져옴.

✅ math.함수이름 형태로 사용해야 함.

장점:

  • 모듈 이름이 유지되므로 코드 가독성이 좋음.
  • 다른 모듈과 이름 충돌을 방지할 수 있음.

2️⃣ from math import *

from math import *

print(sqrt(16))  # 4.0
print(pi)        # 3.141592653589793

✅ math 모듈 안의 모든 함수와 변수를 직접 가져옴.

✅ math.sqrt(16) 대신 sqrt(16)처럼 사용 가능.

단점:

  • sin(), cos() 같은 이름이 다른 모듈이나 사용자 정의 함수와 충돌할 위험이 있음.
  • 어떤 함수가 math에서 왔는지 알기 어렵다 → 코드 가독성이 떨어짐.

 

언제 어떤 방식이 더 좋은가?

✅ 불필요한 것까지 가져오지 않음.

✅ 코드가 깔끔하고 가독성이 좋음.

👉 결론: import math 또는 from math import 필요한 함수 방식을 추천! 🚀

 

 

 


패키지

🔶 os 패키지

파이썬에서 경로를 다룰 때 유용한 os 패키지에서 path 모듈을 불러온다. 그 안에 있는 join()함수를 사용해서 예시 경로를 합친다. join(a, b) 에서 a에는 경로를, b에는 파일명을 넣으면 된다.

import os.path
new_path = os.path.join("/A/B/C", "file.py")
print("join(): " + new_path)

 

 

 


라이브러리

📌 라이브러리: 라이브러리 자체를 가져다 사용하고 호출하는 용도

📌 프레임워크: 특정 공간에 들어가서 사용한다.

 

✅ 사용자가 여러 함수와 클래스들을 필요에 따라 가져다 쓰는 것은 라이브러리

✅ 프레임워크는 보통 틀을 제공하여 사용자가 따르게 한다.

👉 즉, 주체가 다르다. 🚀

 

 

 

반응형