모듈이란, 이미 만들어진 훌륭한 기능으로 사용자는 쉽게 사용할 수 있다.
import random
rNum = random.randint(1, 10)
print(f'모듈 rand 이용 : {rNum}')
📌결과
모듈 rand 이용 : 5
rNums = random.sample(range(101), 10)
print(rNums)
📌결과
[93, 16, 76, 75, 99, 70, 88, 17, 55, 23]
모듈은 특정한 기능을 가지고 있는 파이썬 파일을 말한다.
#user_module.calculator.py
def add(n1, n2):
print(f'{n1} + {n2} = {n1 + n2}')
def sub(n1, n2):
print(f'{n1} - {n2} = {n1 - n2}')
def mul(n1, n2):
print(f'{n1} * {n2} = {n1 * n2}')
def div(n1, n2):
print(f'{n1} / {n2} = {n1 / n2}')
import user_module.calculator as cal #as를 이용해 별명 만들기
cal.add(10, 20)
cal.sub(10, 20)
cal.mul(10, 20)
cal.div(10, 20)
📌결과
10 + 20 = 30
10 - 20 = -10
10 * 20 = 200
10 / 20 = 0.5
#user_module.lotto_make.py
def numbers():
num = random.sample(range(1, 100), 6)
print(f'로또 번호 : {num}')
-----------------------------------------
import user_module.lotto_make as lotto
lotto.numbers()
📌결과
로또 번호 : [53, 52, 74, 69, 8, 30]
def getReverseStr(str):
reverseStr = ""
for i in range(len(str) - 1, -1, -1):
reverseStr += str[i]
return reverseStr
import user_module.reverse as reverse
print(reverse.getReverseStr("Hello"))
)
📌결과
olleH
as 키워드를 이용해 모듈 이름 단축
import user_module.lotto_make as lotto lotto.numbers()
from ~ as 키워드를 이용해 모듈의 특장 기능만 가져오기
from user_module.calculator import add from user_module.calculator import sub from user_module.calculator import mul, div from user_module.calculator import *
#import user_module.score
scores = []
def addKor(kor):
scores.append(kor)
def addEng(eng):
scores.append(eng)
def addMath(math):
scores.append(math)
def getTotalScore():
total = 0
for score in scores:
total += score
return total
def getAvgScore():
avg = getTotalScore() // len(scores)
return avg
--------------------------------------------------
import user_module.score as score
korScore = int(input('국어 점수 입력 : '))
engScore = int(input('영어 점수 입력 : '))
mathScore = int(input('수학 점수 입력 : '))
score.addKor(korScore)
score.addEng(engScore)
score.addMath(mathScore)
print(f'총점 : {score.getTotalScore()}')
print(f'평균 : {score.getAvgScore()}')
📌결과
국어 점수 입력 : 80
영어 점수 입력 : 85
수학 점수 입력 : 90
총점 : 255
평균 : 85
_name_에는 모듈 이름이 저장되거나 '_main_' 저장 된다.
_main_ 은 실행 파일의 이름이다.
# user_module.calculator
print(f'{__name__}')
-----------------------------
add(10, 20)
print(f'{__name__}')
📌결과
user_module.calculator
__main__
#user_module.unitConversion
def cmToMM(n):
return round(n * 10, 3)
def cmToInch(n):
return round(n * 0.393, 3)
def cmToM(n):
return round(n * 0.01, 3)
def cmToFt(n):
return round(n * 0.32, 3)
if __name__ == '__main__':
print(f'10cm : {cmToMM(10)}')
print(f'10cm : {cmToInch(10)}')
print(f'10cm : {cmToM(10)}')
print(f'10cm : {cmToFt(10)}')
📌결과
10cm : 100
10cm : 3.93
10cm : 0.1
10cm : 3.2
--------------------------------------
# main
import user_module.unitConversion as converse
if __name__ == '__main__':
n = int(input('숫자 입력(cm) : '))
print(f'10cm : {converse.cmToMM(n)}')
print(f'10cm : {converse.cmToInch(n)}')
print(f'10cm : {converse.cmToM(n)}')
print(f'10cm : {converse.cmToFt(n)}')
📌결과
숫자 입력(cm) : 15
10cm : 150
10cm : 5.895
10cm : 0.15
10cm : 4.8
패키지를 이용하면 관련 있는 모듈을 그룹으로 관리할 수 있다.
#CalculatorForFloat
#addCal.py
def add(n1, n2):
return float(n1 + n2)
if __name__ == '__main__':
print(add(1.1, 2.2))
#divCal.py
def div(n1, n2):
return float(n1 + n2)
if __name__ == '__main__':
print(div(1.1, 2.2))
#mulCal.py
def mul(n1, n2):
return float(n1 + n2)
if __name__ == '__main__':
print(mul(1.1, 2.2))
#subCal.py
def sub(n1, n2):
return float(n1 - n2)
if __name__ == '__main__':
print(sub(1.1, 2.2))
---------------------------------
#CalculatorForInt
#addCal.py
def add(n1, n2):
return int(n1 + n2)
if __name__ == '__main__':
print(add(1.1, 2.2))
#divCal.py
def div(n1, n2):
return int(n1 + n2)
if __name__ == '__main__':
print(div(1.1, 2.2))
#mulCal.py
def mul(n1, n2):
return int(n1 + n2)
if __name__ == '__main__':
print(mul(1.1, 2.2))
#subCal.py
def sub(n1, n2):
return int(n1 - n2)
if __name__ == '__main__':
print(sub(1.1, 2.2)
---------------------------------
from CalculatorForFloat import addCal
from CalculatorForFloat import subCal
from CalculatorForFloat import mulCal
from CalculatorForFloat import divCal
print(addCal.add(10, 20))
print(subCal.sub(10, 20))
print(mulCal.mul(10, 20))
print(divCal.div(10, 20))
from CalculatorForInt import addCal
from CalculatorForInt import subCal
from CalculatorForInt import mulCal
from CalculatorForInt import divCal
print(addCal.add(10, 20))
print(subCal.sub(10, 20))
print(mulCal.mul(10, 20))
print(divCal.div(10, 20))
📌결과
30.0
-10.0
30.0
30.0
30
-10
30
30
site-package에 있는 모듈은 어디에서나 사용할 수 있다.
def divisor(num):
divisors = []
for i in range(1, num + 1):
if num % i == 0:
divisors.append(i)
return divisors
def prime(num):
primes = []
flag = True
for i in range(2, num + 1):
flag = True
for j in range(2, num + 1):
if i % j == 0 and i != j:
flag = False
break
if flag:
primes.append(i)
return primes
수학, 난수, 시간 모듈은 코딩할 때 유용하게 사용된다.
# 수학 관련 함수
# 합
listvar = [2, 5, 6, 7, 8, 12]
print(sum(listvar))
# 최댓값
print(max(listvar))
# 최솟값
print(min(listvar))
# 거듭제곱
print(pow(13, 3))
# 반올림
print(round(3.141592, 1))
print(round(3.141592, 2))
print(round(3.141592, 3))
#math
import math
# 절대값
print(math.fabs(-10))
# 올림
print(math.ceil(5.31))
print(math.ceil(-5.31))
# 내림
print(math.floor(5.31))
print(math.floor(-5.31))
# 버림
print(math.trunc(5.31))
print(math.trunc(-5.31))
# 최대공약수
print(math.gcd(14, 21))
# 팩토리얼
print(math.factorial(10))
# 제곱근
print(math.sqrt(14))
# time
import time
lt = time.localtime()
print(lt)
print(lt.tm_year)
print(lt.tm_mon)
print(lt.tm_mday)
print(lt.tm_hour)
print(lt.tm_min)
print(lt.tm_sec)