모듈이란, 특정 기능을 가지고 있는 파이썬 파일
- 내부 모듈 : 파이썬 설치 시 기본적으로 사용할 수 있는 모듈
- 외부 모듈 : 별도 설치 후 사용할 수 있는 모듈
- 사용자 모듈 : 사용자가 직접 만든 모듈
키워드
- import : 모듈을 임포트
- as : 모듈 이름을 단축
- from : from ~ import 통해 모듈의 특정 기능만 사용할 수 있음
__name__ 전역변수
- 모듈 이름이 저장되거나 '__main__'이 저장됨
패키지
- 패키지를 통해 관련 있는 모듈을 그룹으로 관리 가능
- site-packages에 있는 모듈은 어디서나 사용 가능
자주 사용하는 모듈
- math 모듈
- random 모듈
- time 모듈
09
<실습1>
import random
randomNumber = random.randint(1, 10)
print(f"randomNumber : {randomNumber}")
<실습2>
import random
randomNumbers = random.sample(range(101), 10)
print(f"randomNumbers : {randomNumbers}")
10
<실습1 로또 번호를 출력하는 모듈>
import random
def lottoNumbers():
result = random.sample(range(1, 46), 6)
return result
--------------------------------------------
import lottoMachine
lotto = lottoMachine.lottoNumbers()
print(f"lottoNumbers : {lotto}")
<실습2 문자열을 거꾸로 반환하는 모듈>
def backward(str):
backwardString = ""
for c in str:
backwardString = c + backwardString
return backwardString
---------------------------------------------
import text
userInputStr = input("문자열 입력: ")
backwardtext = text.backward(userInputStr)
print(f"backwardtext : {backwardtext}")
11
def add(n1, n2):
print(f"덧셈 결과 : {n1 + n2}")
def sub(n1, n2):
print(f"뺄셈 결과 : {n1 - n2}")
def mul(n1, n2):
print(f"곱셈 결과 : {n1 * n2}")
def div(n1, n2):
print(f"나눗셈 결과 : {round(n1 / n2, 2)}")
---------------------------------------------
<import>
import calculator
calculator.add(10, 20)
calculator.sub(10, 20)
calculator.mul(10, 20)
calculator.div(10, 20)
<import as>
import calculator as cal
cal.add(10, 20)
cal.sub(10, 20)
cal.mul(10, 20)
cal.div(10, 20)
<from import>
from calculator import add
from calculator import sub
add(10, 20)
sub(10, 20)
<실습>
scores = []
def addScore(n):
scores.append(n)
def getScores():
return scores
def totalScore():
total = 0
for n in scores:
total += n
return total
def avgScore():
avg = totalScore() / len(scores)
return avg
-------------------------------------
import scores as sc
korScore = int(input("국어 점수 입력: "))
engScore = int(input("영어 점수 입력: "))
matScore = int(input("수학 점수 입력: "))
sc.addScore(korScore)
sc.addScore(engScore)
sc.addScore(matScore)
print(sc.getScores()) # scores 다시 가져오는 기능
print(sc.totalScore())
print(sc.avgScore())
12, 13
def add(n1, n2):
return n1 + n2
if __name__ == "__main__":
print(f"__name__ : {__name__}")
---
def sub(n1, n2):
return n1 - n2
if __name__ == "__main__":
print(f"__name__ : {__name__}")
---
def mul(n1, n2):
return n1 * n2
if __name__ == "__main__":
print(f"__name__ : {__name__}")
---
def div(n1, n2):
return n1 / n2
if __name__ == "__main__":
print(f"__name__ : {__name__}")
------------------------------------
import addModule
import subModule
import mulModule
import divModule
print(addModule.add(10, 20))
print(subModule.sub(10, 20))
print(mulModule.mul(10, 20))
print(divModule.div(10, 20))
<실습>
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.032, 3)
if __name__ == "__main__":
print(f"10cm : {cmTomm(10)}mm")
print(f"10cm : {cmToinch(10)}inch")
print(f"10cm : {cmTom(10)}m")
print(f"10cm : {cmToft(10)}ft")
----------------------------------------
import unit
if __name__ == "__main__":
inputNumber = int(input("길이(cm) 입력: "))
returnValue = unit.cmTomm(inputNumber)
print(f"{inputNumber}cm : {returnValue}mm")
returnValue = unit.cmToinch(inputNumber)
print(f"{inputNumber}cm : {returnValue}inch")
returnValue = unit.cmTom(inputNumber)
print(f"{inputNumber}cm : {returnValue}m")
returnValue = unit.cmToft(inputNumber)
print(f"{inputNumber}cm : {returnValue}ft")
14
CalculatorFloat
def add(n1, n2):
return float(n1 + n2)
if __name__ == "__main__":
print(add(3.14, 1.2))
---
def sub(n1, n2):
return float(n1 - n2)
if __name__ == "__main__":
print(sub(3.14, 1.2))
---
def mul(n1, n2):
return float(n1 * n2)
if __name__ == "__main__":
print(mul(3.14, 1.2))
---
def div(n1, n2):
return float(n1 / n2)
if __name__ == "__main__":
print(div(3.14, 1.2))
~~~~~~~~~~~~~~~~~~~~~~~~~~~
CalculatorInt
def add(n1, n2):
return int(n1 + n2)
if __name__ == "__main__":
print(add(3.14, 1.2))
---
def sub(n1, n2):
return int(n1 - n2)
if __name__ == "__main__":
print(sub(3.14, 1.2))
---
def mul(n1, n2):
return int(n1 * n2)
if __name__ == "__main__":
print(mul(3.14, 1.2))
---
def div(n1, n2):
return int(n1 / n2)
if __name__ == "__main__":
print(div(3.14, 1.2))
----------------------------
from CalculatorInt import addCalculator
from CalculatorInt import subCalculator
from CalculatorInt import mulCalculator
from CalculatorInt import divCalculator
print(addCalculator.add(10, 20))
print(subCalculator.sub(10, 20))
print(mulCalculator.mul(10, 20))
print(divCalculator.div(10, 20))
from CalculatorFloat import addCalculator
from CalculatorFloat import subCalculator
from CalculatorFloat import mulCalculator
from CalculatorFloat import divCalculator
print(addCalculator.add(10, 20))
print(subCalculator.sub(10, 20))
print(mulCalculator.mul(10, 20))
print(divCalculator.div(10, 20))
15
def add(n1, n2):
return n1 + n2
def sub(n1, n2):
return n1 - n2
def mul(n1, n2):
return n1 * n2
def div(n1, n2):
return n1 / n2
from calculator import cal
print(f"cal.add(10, 20) : {cal.add(10, 20)}")
print(f"cal.sub(10, 20) : {cal.sub(10, 20)}")
print(f"cal.mul(10, 20) : {cal.mul(10, 20)}")
print(f"cal.div(10, 20) : {cal.div(10, 20)}")
<실습>
def divisor(inputNumber):
result = []
for number in range(1, (inputNumber + 1)):
if inputNumber % number == 0:
result.append(number)
return result
def prime_number(inputNumber):
result = []
for number in range(2, (inputNumber + 1)):
flag = True
for n in range(2, number):
if number % n == 0:
flag = False
break
if (flag):
result.append(number)
return result
------------------------------------------------
from divisor_pac import divisor_mod as dm
print(f"10의 약수 : {dm.divisor(10)}")
print(f"50까지의 소수 : {dm.prime_number(50)}")
16
<수학 모듈>
- 합
listVar = [2, 4, 3.14, 58, 10, 2]
print(f"sum(listVar) : {sum(listVar)}")
- 최댓값
print(f"sum(listVar) : {max(listVar)}")
- 최솟값
print(f"sum(listVar) : {min(listVar)}")
- 거듭제곱
print(f"pow(13, 2) : {pow(13, 2)}")
print(f"pow(13, 3) : {pow(13, 3)}")
print(f"pow(13, 4) : {pow(13, 4)}")
- 반올림
print(f"round(3.141592, 1) : {round(3.141592, 1)}")
print(f"round(3.141592, 2) : {round(3.141592, 2)}")
print(f"round(3.141592, 3) : {round(3.141592, 3)}")
print(f"round(3.141592, 4) : {round(3.141592, 4)}")
print(f"round(3.141592, 5) : {round(3.141592, 5)}")
- 모듈
import math
-- 절댓값
print(f"math.fabs(-10) : {math.fabs(-10)}")
print(f"math.fabs(-0.12895) : {math.fabs(-0.12895)}")
-- 올림
print(f"math.ceil(5.21) : {math.ceil(5.21)}")
print(f"math.ceil(-5.21) : {math.ceil(-5.21)}")
-- 내림
print(f"math.floor(5.21) : {math.floor(5.21)}")
print(f"math.floor(-5.21) : {math.floor(-5.21)}")
-- 버림
print(f"math.trunc(5.21) : {math.trunc(5.21)}")
print(f"math.trunc(-5.21) : {math.trunc(-5.21)}")
-- 최대공약수
print(f"math.gcd(14, 21) : {math.gcd(14, 21)}")
-- 팩토리얼
print(f"math.factorial(10) : {math.factorial(10)}")
-- 제곱근
print(f"math.sqrt(4) : {math.sqrt(4)}")
print(f"math.sqrt(12) : {math.sqrt(12)}")
----------------------------------------------------
<랜덤 모듈>
import random
- 0이상 1미만 난수
print(f"random.random() : {random.random()}")
- 1이상 20이하 난수
print(f"random.randint(1, 20) : {random.randint(1, 20)}")
- 1이상 20미만 난수
print(f"random.randrange(1, 20) : {random.randrange(1, 20)}")
- 1이상 21미만 난수 5개
print(f"random.sample(range(1, 21), 5) : {random.sample(range(1, 21), 5)}")
- 무작위 한개 추출
listVar = [0, 1, 2, 3, 4, 5, 6]
print(f"random.choice(listVar) : {random.choice(listVar)}")
- 섞음
listVar = [0, 1, 2, 3, 4, 5, 6]
print(f"listVar : {listVar}")
random.shuffle(listVar)
print(f"shuffle listVar : {listVar}")
----------------------------------------------------------------------------
<시간 모듈>
import time
- 현재 시스템 시간
lt = time.localtime()
print(f"time.localtime() : {lt}")
-- 년
print(f"lt.tm_year : {lt.tm_year}")
-- 월
print(f"lt.tm_mon : {lt.tm_mon}")
-- 일
print(f"lt.tm_mday : {lt.tm_mday}")
-- 시간
print(f"lt.tm_hour : {lt.tm_hour}")
-- 분
print(f"lt.tm_min : {lt.tm_min}")
-- 초
print(f"lt.tm_sec : {lt.tm_sec}")
-- 요일
print(f"lt.tm_wday : {lt.tm_wday}") # 요일의 경우, 0(월) 부터 숫자로 표현