#계산기 함수를 이용해서 계산기 만들기
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}')
def mod(n1,n2):
print(f'{n1}%{n2}={n1%n2}')
def floor(n1,n2):
print(f'{n1}//{n2}={n1//n2}')
def pow(n1,n2):
print(f'{n1}**{n2}={n1**n2}')
flag = True
while flag:
print('-' * 60)
select1 = int(input('1.덧셈, 2.뺼셈, 3.곱셈, 4.나눗셈, 5.나머지, 6.몫, 7.제곱승, 8.종료 '))
if select1 ==8:
print('Bye~~')
break
num1 = float(input('첫번째 숫자 입력: '))
num2 = float(input('두번째 숫자 입력: '))
if select1 == 1:
add(num1,num2)
elif select1 ==2:
sub(num1,num2)
elif select1 ==3:
mul(num1,num2)
elif select1 ==4:
div(num1,num2)
elif select1 ==5:
mod(num1,num2)
elif select1 ==6:
floor(num1,num2)
elif select1 ==7:
pow(num1,num2)
else:
print('잘못입력')
print('-' * 60)
2_1번
def getDistance(n1,n2,n3):
return n1*(n2+(n3/60))
print('-'*60)
s = float(input('속도(km/h) 입력: '))
h = float(input('시간(h) 입력: '))
m = float(input('시간(m) 입력: '))
d = getDistance(s,h,m)
print(f'{s}(km/h)속도로 {h}(h)시간 {m}(m)분 동안 이동한 거리:{d}(km)')
print('-'*60)
------------------------------------------------------------
속도(km/h) 입력: 90
시간(h) 입력: 2
시간(m) 입력: 45
90.0(km/h)속도로 2.0(h)시간 45.0(m)분 동안 이동한 거리:247.5(km)
------------------------------------------------------------
2_2번
#시간 구하기 시간 = 거리 / 속도
#시간의 분을 환산하는 방법은 100:75 = 60:x --> x = 75*60 / 100
def getTime(distance, speed):
time = distance/speed
h = int(time)
m = int((time - h) *100* 60 /100)
# return받을게 2개 이상이면 리스트로 반환해라
return [h,m]
print('-'*60)
s = float(input('속도(km/h) 입력: '))
d = float(input('거리(km) 입력: '))
t = getTime(d,s)
print(f'{s}(km/h)속도로 {d}만큼 이동한 시간 : {t[0]}(h)시간 {t[1]}(m)분 동안 이동')
print('-'*60)
------------------------------------------------------------
속도(km/h) 입력: 90
거리(km) 입력: 247.5
90.0(km/h)속도로 247.5만큼 이동한 시간 : 2(h)시간 45(m)분 동안 이동
------------------------------------------------------------
childPrice = 18000
infantPrice = 25000
adultPrice = 50000
disCountPrice = 0.5
#요금에 3자리 마다 ','붙여주는 함수 정의
def formatation(n):
return format(n,',')
#입력 값들에 따른 비행기표 영수증 출력 함수 정의
def printAirplaneReceipt(c1,c2,i1,i2,a1,a2):
print('='*60)
cp = childPrice * c1
cp_dc = int(childPrice * disCountPrice * c2)
print(f'유아 {c1}명 요금: {formatation(cp)}원')
print(f'유아 할인 대상 {c2}명 요금: {formatation(cp_dc)}원')
ip = infantPrice*i1
ip_dc = int(infantPrice * disCountPrice * i2)
print(f'소아 {i1}명 요금: {formatation(ip)}원')
print(f'소아 할인 대상 {i2}명 요금: {formatation(ip_dc)}원')
ap = adultPrice*a1
ap_dc = int(adultPrice * disCountPrice * a2)
print(f'성인 {a1}명 요금: {formatation(ap)}원')
print(f'성인 할인 대상 {a2}명 요금: {formatation(ap_dc)}원')
print('='*60)
totalCnt = a1 + a2 + c1 + c2 + i1 + i2
print(f'Total: {formatation(totalCnt)}명')
print(f'TotalPrice : {formatation(cp + cp_dc + ip + ip_dc + ap + ap_dc)}원')
print('='*60)
#입력값들
childNum = int(input('유아 입력:'))
childDiscountNum = int(input('할인대상 유아 입력:'))
infantNum = int(input('소아 입력:'))
infantDiscountNum = int(input('할인대상 소아 입력:'))
adultNum = int(input('성인 입력:'))
adultDiscountNum = int(input('할인대상 성인 입력:'))
#비행기표영수증 출력 함수 호출
printAirplaneReceipt(childNum,childDiscountNum,infantNum,infantDiscountNum,\
adultNum,adultDiscountNum)
유아 입력:1
할인대상 유아 입력:1
소아 입력:2
할인대상 소아 입력:1
성인 입력:2
할인대상 성인 입력:0
============================================================
유아 1명 요금: 18,000원
유아 할인 대상 1명 요금: 9,000원
소아 2명 요금: 50,000원
소아 할인 대상 1명 요금: 12,500원
성인 2명 요금: 100,000원
성인 할인 대상 0명 요금: 0원
============================================================
Total: 7명
TotalPrice : 189,500원
============================================================
4_1
재귀함수 : 내가 나를 다시 호출 하는 함수
#재귀함수 이용한 팩토리얼
def recrusionFun(n):
if n == 1:
return n
return n*recrusionFun(n-1)
inputNum = int(input('input number : '))
print(format(recrusionFun(inputNum),','))
input number : 10
3,628,800
4_2
- 단리 : 정해진 기간 동안 원금에 동일안 이자를 더한 값
- 복리 : 정해진 기간 동안 원금에 이자의 이자의 이자의 ...
#단리, 월복리 계산기
#복리계산은 원금 + 이자 로 함수를 만드는 것이 최적
# 3자리 숫자 마다 , 찍어주는 함수 정의
def formatedNumber(n):
return format(n,',')
#함수 매개변수는 입력받거나 변할 수 있는 수로 한다.
#단리 계산 함수
def singleRateCalculator(m, t, r):
totalMoney = 0
totalRateMoney = 0
for i in range(t):
#r*0.01은 이자율을 백분율로 변환하기 위해
totalRateMoney += m* (r*0.01)
totalMoney = m + totalRateMoney
return int(totalMoney)
#월복리 계산 함수
def mulitRateCalculator(m,t,r):
#연이율을 월로 계산
t = t*12
#월이자
rpm = (r/12) *0.01
totalMoney = m
for i in range(t):
#t는 월수로 변환 되었고 t월동안 원금에 이자 원금+이자 에 이자 ....t월 동안
#totalMoney = totalMoney + (totalMoney*rpm)
totalMoney +=totalMoney*rpm
return int(totalMoney)
money = int(input('예치금: '))
term = int(input('기간(년)'))
rate = int(input('연이율(%)'))
print('[단리계산기]')
print('='*30)
print(f'예치금 \t: {money}')
print(f'예치기간 \t: {term}')
print(f'연 이율 \t: {rate}')
print('-'*30)
print(f'{term}년 후 총 수령액: {formatedNumber(singleRateCalculator(money,term,rate))}원')
print('='*30)
print()
print()
print('[복리계산기]')
print('='*30)
print(f'예치금 \t: {money}')
print(f'예치기간 \t: {term}')
print(f'연 이율 \t: {rate}')
print('-'*30)
print(f'{term}년 후 총 수령액: {formatedNumber(mulitRateCalculator(money,term,rate))}원')
print('='*30)
예치금: 10000000
기간(년)3
연이율(%)3
[단리계산기]
==============================
예치금 : 10000000
예치기간 : 3
연 이율 : 3
------------------------------
3년 후 총 수령액: 10,900,000원
==============================
[복리계산기]
==============================
예치금 : 10000000
예치기간 : 3
연 이율 : 3
------------------------------
3년 후 총 수령액: 10,940,514원
==============================
def sequenceCal(n1,d,n):
#N항의 값 , N항까지의 값
valueN = 0; sumN = 0;
i = 1
while i <=n:
if i == 1:
valueN = n1
sumN += valueN
print(f'{i}번째 항의 값: {valueN}')
print(f'{i}번째 항까지의 합: {sumN}')
i+=1
continue
valueN += d
sumN += valueN
print(f'{i}번째 항의 값: {valueN}')
print(f'{i}번째 항까지의 합: {sumN}')
i+=1
inputN1 = int(input('a1입력 : '))
inputD = int(input('공차입력 : '))
inputN = int(input('n입력 : '))
sequenceCal(inputN1,inputD,inputN)
a1입력 : 2
공차입력 : 3
n입력 : 7
1번째 항의 값: 2
1번째 항까지의 합: 2
2번째 항의 값: 5
2번째 항까지의 합: 7
3번째 항의 값: 8
3번째 항까지의 합: 15
4번째 항의 값: 11
4번째 항까지의 합: 26
5번째 항의 값: 14
5번째 항까지의 합: 40
6번째 항의 값: 17
6번째 항까지의 합: 57
7번째 항의 값: 20
7번째 항까지의 합: 77
def sequenceCal(n1,r,n):
valueN = 0; sumN = 0
i = 1
while i <=n:
if i == 1:
valueN = n1
sumN = valueN
print(f'{i}번째 항의 값: {valueN}')
print(f'{i}번째 항까지의 합: {sumN}')
i +=1
continue
valueN *=r
sumN +=valueN
print(f'{i}번째 항의 값: {valueN}')
print(f'{i}번째 항까지의 합: {sumN}')
i+=1
inputN1 = int(input('a1 입력: '))
inputD = int(input('공차 입력: '))
inputN = int(input('n 입력: '))
sequenceCal(inputN1,inputD,inputN)
a1 입력: 2
공차 입력: 3
n 입력: 5
1번째 항의 값: 2
1번째 항까지의 합: 2
2번째 항의 값: 6
2번째 항까지의 합: 8
3번째 항의 값: 18
3번째 항까지의 합: 26
4번째 항의 값: 54
4번째 항까지의 합: 80
5번째 항의 값: 162
5번째 항까지의 합: 242
def passOrfail(n1,n2,n3,n4,n5):
passAvgScore = 60; limitScore=40
def getTotal():
totalScore = n1+n2+n3+n4+n5
print(f'총점 : {totalScore}')
return totalScore
def getAveragr():
totalAvg = getTotal()/5
print(f'평균 : {totalAvg}')
return totalAvg
def printPassOrFail():
print(f'{n1}: pass') if n1>=40 else print(f'{n1}: fail')
print(f'{n2}: pass') if n2>=40 else print(f'{n2}: fail')
print(f'{n3}: pass') if n3>=40 else print(f'{n3}: fail')
print(f'{n4}: pass') if n4>=40 else print(f'{n4}: fail')
print(f'{n5}: pass') if n5>=40 else print(f'{n5}: fail')
def printFinalPassOrFail():
if getAveragr()>=passAvgScore:
if n1>=limitScore and n2>=limitScore and n3>=limitScore and n4>=limitScore and n5 >= limitScore:
print('Final Pass!!')
else:
print('Final Fail!!')
else:
print('Final Fail!!')
getAveragr()
printPassOrFail()
printFinalPassOrFail()
import moduel
if __name__ == '__main__':
sub1 = int(input('과목1 점수 입력: '))
sub2 = int(input('과목2 점수 입력: '))
sub3 = int(input('과목3 점수 입력: '))
sub4 = int(input('과목4 점수 입력: '))
sub5 = int(input('과목5 점수 입력: '))
moduel_01.passOrfail(sub1,sub2,sub3,sub4,sub5)
과목1 점수 입력: 100
과목2 점수 입력: 35
과목3 점수 입력: 85
과목4 점수 입력: 45
과목5 점수 입력: 90
총점 : 355
평균 : 71.0
100: pass
35: fail
85: pass
45: pass
90: pass
총점 : 355
평균 : 71.0
Final Fail!!