모듈, 패키지, 라이브러리 비교
모듈: 파이썬 코드가 들어가 있는 단일 파일 (.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
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, ...)
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("지원하지 않는 연산자를 입력하여 오류가 발생했습니다.")