파이썬 모듈, 패키지, 라이브러리

김지수·2025년 5월 30일

모듈, 패키지, 라이브러리 비교

모듈: 파이썬 코드가 들어가 있는 단일 파일 (.py파일)
패키지: 여러 모듈을 폴더로 묶은 것
라이브러리: 모듈과 패키지를 포함한 전체적인 기능 집합

포준모듈: 파이썬 내장 모듈

1. random 모듈: 난수 생성을 위한 함수 제공

# random 모듈 불러오기
import random

# 모듈 r이라는 키워드로 지정도 가능 
#import random as r 

# randint(a,b): a 이상 b 이상의 정수 무작위로 변환 
num = random.randint(1,10)
print(num)

# random(): 0 이상 1 미만의 실수 반환
num = r.random(1,10)
print(num)

# seed(): 난수 생성의 초기값을 고정
random.seed(42)
print(random.randint(1,10)) # 항상 같은 값 출력

2. math 모듈: 수학적 함수 및 상수 제공

import math

# pi: 원주율
print(math.pi)

# e: 자연상수 제공 
print(math.e)

# pow(n,x): n의 x 제곱 반환, 항상 실수형 결과를 반환 
result = math.pow(2,3)
print(result) #8.0

# ceil(): 올림 함수, 수직선 상에서 우측의 값 반환
result = ceil(3.14)
print(result) # 4

# floor(): 내림 함수, 수직전 상에서 좌측의 값 반환
result = math.floor(3.14)
print(result) #3

# round(숫자, 소수점_자리수): 반올림 함수
result = round(3.14159, 2)
print(result) #3.14
  1. time 모듈: 시간과 관련된 기능
import time

# time.sleep(secs)
print("3초 대기 시작"
time.sleep(3)
print("3초 대기 후 출력")

# time.localtime(): 현지 시간 반환 

now = time.localtime()
print(now) # ime.struct_time(tm_year=2025, tm_mon=5, tm_mday=30, tm_hour=14, tm_min=25, tm_sec=10, ...)
  1. keyword 모듈: 예약어와 관련된 기능 제공
import keyword

print(keyword.kwlist) # 현재 사용되는 모든 예약어 리스트 반환

print(keyword.iskeyword("for")) # for이 파이썬의 예약어인지 여부를 True/False로 반환

import로 모듈 불러오기

# from import로 모듈 일부분만 가져오기
from math import pi
pi

# 여러 개의 변수, 함수를 가져올 때 
from math import e, pi, pow
pi, e, pow(2, 6)

# from import as: 모듈 일부분만 가져오기 + 키워드
# case1
from 모듈 import 변수 as 이름
from 모듈 import 함수 as 이름
from 모듈 import 클래스 as 이름

# case2
from 모듈 import 변수 as 이름1, 함수 as 이름2, 클래스 as 이름3

#모두 import
from math import *
ceil (6.3)

#모듈만 import
import math
math.ceil(6.3)

실습: 계산기 만들기

while True:
    try:
        # 두 개의 정수를 받을 때는 나눠서 입력해야됨. 
        num1 = int(input("첫 번째 정수를 입력하세요:"))
        num2 = int(input("두 번째 정수를 입력하세요:"))
        cal = input("연산자를 입력하세요:")
    
    except ValueError:
        print("잘못된 입력입니다. 정수를 입력해주세요.")
        num1 = int(input("첫 번째 정수를 입력하세요:"))
        num2 = int(input("두 번째 정수를 입력하세요:"))
        cal = input("+, -, *, /, ** 중 연산자를 한 개 입력하세요:")
    
    #문자열과 리스트는 다르다 
	    #if cal not in ['+','-','*','/','**']:
        #print("지원하지 않는 연산자를 입력하여 오류가 발생했습니다.")

    else:
        if cal == '+':
            result1 = num1 + num2
            print (f'계산된 값은:{result1}입니다.')
        elif cal == '-':
            result2 = num1 - num2
            print (f'계산된 값은:{result2}입니다.')
        elif cal == '*':
            result3 = num1 * num2
            print (f'계산된 값은:{result3}입니다.')
        elif cal == '/':
            if num2 == 0:
                raise ZeroDivisionError('나눗셈 연산 시 두 번째 정수가 0이 될 수 없습니다.')
            else:
                result4 = num1 / num2
                print (f'계산된 값은:{result4}입니다.')
        # 처음에 else 를 썼는데, else 뒤에는 조건문 쓸 수 없음 
        elif cal == '**':
            from math import pow
            result5 = pow(num1,num2)
            print (f'계산된 값은:{result5}입니다.')
        #오류 메시지는 항상 모든 정상 케이스를 처리한 맨 마지막 else문 안에 넣어야 한다.
        else:
            print("지원하지 않는 연산자를 입력하여 오류가 발생했습니다.")
profile
오늘 배운 것을 기록하며, 나만의 지식으로 만들어가는 성장 일지 💪🍀

0개의 댓글