함수 연습문제 1
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
def mod(n1,n2):
return n1 % n2
def flo(n1,n2):
return n1//n2
def exp(n1,n2):
return n1 ** n2
while True:
print('*'*60)
selectNum = int(input('1.덧셈, 2.뺄셈, 3.곱셈, 4.나눗셈, 5.나머지, 6.몫, 7.제곱승, 8.종료'))
if selectNum == 8:
print('연산을 종료합니다.')
break
num1 = float(input('첫번째 숫자 입력 : '))
num2 = float(input('두번째 숫자 입력 : '))
if selectNum == 1:
print(f'{num1}+{num2} : {add(num1,num2)}')
elif selectNum == 2:
print(f'{num1}-{num2} : {sub(num1,num2)}')
elif selectNum == 3:
print(f'{num1}*{num2} : {mul(num1,num2)}')
elif selectNum == 4:
print(f'{num1}/{num2} : {div(num1,num2)}')
elif selectNum == 5:
print(f'{num1}%{num2} : {mod(num1,num2)}')
elif selectNum == 6:
print(f'{num1}//{num2} : {flo(num1,num2)}')
elif selectNum == 7:
print(f'{num1}**{num2} : {exp(num1,num2)}')
else:
print('잘못입력했습니다. 다시 입력하세요')
print('*' * 60)
함수 연습문제2
def getDistance(speed, hour, minute):
distance = speed * (hour + minute/60) #분을 60으로 나눠야 시간과 합쳤을때 문제가 안생김
return distance
def getTime(speed,distance):
time = distance / speed
h= int(time)
m= int((time - h) * 100 * 60 /100) #1시간은 60분이므로
return[h,m] #자료가 두개니까 [] 리스트로 묶어서 반환
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)
print('*'*60)
s = float(input('속도 (km/h) 입력 : '))
d = float(input('거리 (km/h) 입력 :'))
t = getTime(s,d)
print(f'{s}(km/h)속도로 {d}(km) 이동한 시간 : {t[0]}(h)시간 {t[1]}(m)분') #리스트 해둔 순서
print('*'*60)
함수 연습문제3
childPrice = 18000
infantPrice = 25000
adultPrice = 50000
specialDC = 50
def printAirplaneReceipt(c1,c2,i1,i2,a1,a2): #
cp = c1 * childPrice
cp_dc = int(c2*childPrice * 0.5)
print(f'유아 {c1}명 요금 : {cp}원')
print(f'유아 할인 대상 {c2}명 요금 : {cp_dc}원')
ip = i1 * infantPrice
ip_dc = int(i2*infantPrice*0.5)
print(f'소아 {i1}명 요금 : {ip}원')
print(f'소아 할인 대상 {i2}명 요금 : {ip_dc}원')
ap = a1 * adultPrice
ap_dc = int(a2*adultPrice*0.5)
print(f'성인 {a1}명 요금 : {ap}원')
print(f'성인 할인 대상 {a2}명 요금 : {ap_dc}원')
childCnt = int(input('유아 입력 : '))
specialDCChildCnt = int(input('할인 대상 유아 입력 : '))
infantCnt = int(input('소아 입력 : '))
specialDCInfantCnt = int(input('할인 대상 소아 입력 : '))
adultCnt = int(input('성인 입력 : '))
specialDCadultCnt = int(input('할인 대상 성인 입력 : '))
printAirplaneReceipt(childCnt,specialDCChildCnt,infantCnt,specialDCInfantCnt,\
adultCnt,specialDCadultCnt)
함수연습문제 4
팩토리얼 구하기
def recursionFun(n): #재귀함수
if n == 1:
return n
return n * recursionFun(n-1)
inputNum = int(input('input number : '))
print(format(recursionFun(inputNum),','))
#단리
def singleRateCal(m,t,r): #돈, 기간, 이율
totalMoney = 0
totalRateMoney = 0
for i in range(t):
totalRateMoney += m * (r*0.01) #3프로라고 해서 3을 넣는게 아니고 0.03을 곱해줘야함
totalMoney = m + totalRateMoney
return int(totalMoney)
#월복리
def multiRateCal(m,t,r):
t = t*12 #월복리 이기 때문에 연을 월로 환산
rpm= (r/12)*0.01 #연이자율이기 때문에 월로 환산
totalMoney = m
for i in range(t):
totalMoney += totalMoney * rpm
return int(totalMoney)
def formatedNumber(n):
return format(n,',') #3자리마다 쉼표찍기
money = int(input('예치금 입력 : '))
time = int(input('기간(년) 입력 : '))
rate = float(input('연이율 입력 : '))
print(f'{time}년 후 총 수령액 : {formatedNumber(singleRateCal(money,time,rate))}')
print(f'{time}년 후 총 수령액 : {formatedNumber(multiRateCal(money,time,rate))}')
함수 연습문제5
#등차수열
def sequenceCal(n1,d,n): #초항, 공차, 마지막번째 항
valueN = 0 #n항의 값
sumN = 0 #n항까지의 합의 값
i =1
while i <= n:
if i == 1:
valueN = n1
sumN += valueN
print(f'{i}번째 항의 값 : {valueN}')
print(f'{i}번째 항 까지의 합 : {sumN}')
i += 1
continue
else:
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)
함수 연습문제06
#등비수열
def sequenceCal(n1,d,n): #초항, 공차, 마지막번째 항
valueN = 0 #n항의 값
sumN = 0 #n항까지의 합의 값
i =1
while i <= n:
if i == 1:
valueN = n1
sumN += valueN
print(f'{i}번째 항의 값 : {valueN}')
print(f'{i}번째 항 까지의 합 : {sumN}')
i += 1 #무한루프 빠지지않게
continue
else:
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)