-조합 계산 모듈을 만들고 다음 조합 계산 결과를 출력해 보자.
실행파일
import combination as ct
numN = int(input('numN 입력 : '))
numR = int(input('numR 입력 : '))
print(f'{numN}C{numR} : {ct.getCombinationCnt(numN, numR, logPrint = False)}')
listVar = [1, 2, 3, 4, 5, 6, 7, 8]
rVar = 3
ct.getCombinations(listVar, rVar)
모듈파일
# 조합을 구하는 공식 = nPr / n!
# 수학 공식을 사용한 방법
def getCombinationCnt(n, r, logPrint = True): # n 전체 개수 , r 그중 선택 개수
resultP = 1
resultR = 1
resultC = 1
# 순열 구하기
for n in range(n, (n-r), -1):
resultP = resultP * n
if logPrint: print(f'resultP : {resultP}')
for n in range(r, 0, -1):
resultR = resultR * n
if logPrint: print(f'resultR : {resultR}')
resultC = int(resultP / resultR)
if logPrint: print(f'resultC : {resultC}')
return resultC
# 모듈을 사용한 방법
from itertools import combinations
def getCombinations(ns, r):
cList = list(combinations(ns, r))
print(f'{len(ns)}C{r} : {len(cList)}')
for n in combinations(ns, r):
print(n, end= ', ')
- 수입과 공과금을 입력하면 공과급 총액과 수입 대비 공과금 비율을 계산하는 모듈을 만들어보자.
실행파일
import utilityBill as ub
inputIncome = int(input('수입 입력 : '))
ub.setIncome(inputIncome)
inputWaterPrice = int(input('수도요금 입력 : '))
ub.setWaterPirce(inputWaterPrice)
inputElectricPrice = int(input('전기요금 입력 : '))
ub.setElectricPirce(inputElectricPrice)
inputGasPrice = int(input('가스요금 입력 : '))
ub.setGasPirce(inputGasPrice)
print(f'공과금 : {ub.getUtilityBill()}원')
print(f'수입 대비 공과금 비율 : {ub.getUtilityBillrate()}%')
# format함수로 숫자 정리 해보기
모듈파일
income = 0
waterPirce = 0
electricPirce = 0
gasPirce = 0
# 수입을 설정하고 겟 해주는 설정
def setIncome(ic): # setter
global income
income = ic
def getIncome(): # getter
return income
# 수도요금을 설정하고 겟 해주는 설정
def setWaterPirce(wp): # setter
global waterPirce
waterPirce = wp
def getWaterPirce(): # getter
return waterPirce
# 전기요금을 설정하고 겟 해주는 설정
def setElectricPirce(ep): # setter
global electricPirce
electricPirce = ep
def getElectricPirce(): # getter
return electricPirce
# 가스요금을 설정하고 겟 해주는 설정
def setGasPirce(gp): # setter
global gasPirce
gasPirce = gp
def getGasPirce(): # getter
return gasPirce
# 공과금 총액을 get
def getUtilityBill():
result = waterPirce + electricPirce + gasPirce
return result
def getUtilityBillrate():
result = getUtilityBill() / getIncome() * 100
return result
- 다음과 같이 패키지와 모듈을 만들고 연산 결과를 출력해 보자.
arithmetic 패키지
basic_operator.py 덧셈, 뺄셈, 곱셈, 나눗셈
developer_operator.py 나머지, 몫, 거듭제곱
shape 패키지
circle_area.py 원의넓이
triangle_square_area.py 삼각형, 사각형의 넓이
실행파일
inputNumber1 = float(input('숫자1 입력 : '))
inputNumber2 = float(input('숫자2 입력 : '))
print(f'{inputNumber1} + {inputNumber2} = {bo.add(inputNumber1, inputNumber2)}')
print(f'{inputNumber1} - {inputNumber2} = {bo.sub(inputNumber1, inputNumber2)}')
print(f'{inputNumber1} * {inputNumber2} = {bo.mul(inputNumber1, inputNumber2)}')
print(f'{inputNumber1} / {inputNumber2} = {bo.div(inputNumber1, inputNumber2)}')
print(f'{inputNumber1} % {inputNumber2} = {do.mod(inputNumber1, inputNumber2)}')
print(f'{inputNumber1} // {inputNumber2} = {do.flo(inputNumber1, inputNumber2)}')
print(f'{inputNumber1} ** {inputNumber2} = {do.exp(inputNumber1, inputNumber2)}')
inputWidth = float(input('가로 입력 : '))
inputHeight = float(input('세로 입력 : '))
print(f'삼각형 넓이 : {tsa.calTriangleArea(inputWidth, inputHeight)}')
print(f'사각형 넓이 : {tsa.calSquareArea(inputWidth, inputHeight)}')
inputRadius = float(input('반지름 입력 : '))
print(f'원의 넓이 : {ca.calCircleArea(inputRadius)}')
arithmetic 패키지
basic_operator 모듈파일
def add(n1, n2):
return round(n1 + n2, 2) # 소수나 정수 올 수 있기때문에
def sub(n1, n2):
return round(n1 - n2, 2)
def mul(n1, n2):
return round(n1 * n2, 2)
def div(n1, n2):
return round(n1 / n2, 2)
arithmetic 패키지
developer_operator 모듈파일
def mod(n1, n2):
return round(n1 % n2, 2) # 소수나 정수 올 수 있기때문에
def flo(n1, n2):
return round(n1 // n2, 2)
def exp(n1, n2):
return round(n1 ** n2, 2)
shape 패키지
circle_area 모듈파일
def calCircleArea(r):
return round(r * r * 3.14, 2) # 소수나 정수 올 수 있기때문에
shape 패키지
triangle_square_area 모듈파일
def calTriangleArea(w, h):
return round(w * h / 2, 2) # 소수나 정수 올 수 있기때문에
def calSquareArea(w, h):
return round(w * h, 2) # 소수나 정수 올 수 있기때문에
이 글은 제로베이스 데이터 취업 스쿨의 강의자료 일부를 발췌하여 작성되었습니다.