Python 문풀 03.

yoong·2023년 4월 18일

1. Python

목록 보기
16/21

[실습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('bye')
        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]

: 이동거리 + 이동시간 반환 함수

#거리
print('-' * 70)

def getDistance(speed,hour,minute):
    distance = speed * (hour + minute / 60)
    return distance

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('-' * 70)

#시간
def getTime(speed,distance):
    time = distance / speed
    print(f'time: {time}')
    h = int(time)
    m = int((time - h) * 100 * 60 / 100)

    return [h,m]

print('-' * 60)
s = float(input('속도(km/h) 입력: '))
d = float(input('거리(km) 입력: '))
t = getTime(s,d)
print(f'{s}(km/h)속도로 {d}(km) 이동한 시간: {t[0]}(h)시간 {t[1]}(m)분 ')
print('-' * 70)

[실습3]

: 영수증 출력 함수

infantPrice = 18000
childPrice = 25000
adultPrice = 50000
specialDc = 50

def formatedNum(n):
    return format(n, ',')

def printAirPlaneRecipt(i1,i2,c1,c2,a1,a2):

    ip = i1 * infantPrice
    ip_dc = int(c2 * infantPrice * 0.5)
    print(f'유아: {i1}명 요금: {formatedNum(ip)}원')
    print(f'유아할인 요금: {i2}명 요금: {formatedNum(ip_dc)}원')

    cp = c1 * childPrice
    cp_dc = int(c2 * childPrice * 0.5)
    print(f'소아: {c1}명 요금: {formatedNum(cp)}원')
    print(f'소아할인 요금: {c2}명 요금: {formatedNum(cp_dc)}원')

    ap = a1 * adultPrice
    ap_dc = int(a2 * adultPrice * 0.5)
    print(f'어른: {a1}명 요금: {formatedNum(ap)}원')
    print(f'어른할인 요금: {a2}명 요금: {formatedNum(ap_dc)}원')

    print(f'Total: {i1+i2+c1+c2+a1+a2}명')
    print(f'TotalPrice: {ip+ip_dc+cp+cp_dc+ap+ap_dc}명')

infantCnt = int(input('유아 입력: '))
infantDCCnt = int(input('할인 대상 유아 입력: '))
childCnt = int(input('소아 입력: '))
childDCCnt = int(input('할인 대상 소아 입력: '))
adultCnt = int(input('어른 입력: '))
adultDCCnt = int(input('할인 대상 어른 입력: '))

printAirPlaneRecipt(infantCnt,infantDCCnt,
                    childCnt,childDCCnt,
                    adultCnt,adultDCCnt)

[실습4]

: 팩토리얼

def recursionFun(n):

    if n == 1:
        return n

    return n * recursionFun(n-1)

inputNumber = int(input('input number: '))
print(format(recursionFun(inputNumber),','))

[실습5]

: 단리/월 복리 계산기

def fromatedNumber(n):
    return format(n,',')

#단리
def singleRateCalculator(m,t,r):

    totalMoney = 0
    totalRateMoney = 0

    for i in range(t):
        totalRateMoney += m * (r * 0.01)

    totalMoney = m + totalRateMoney
    return int(totalMoney)

#복리(월)
def compoundRateCalculator(m,t,r):

    t = t * 12
    rpm = ( r / 12 ) * 0.01

    totalMoney = m

    for i in range(t):
        totalMoney += totalMoney * rpm

    return int(totalMoney)

money = int(input('예치금(원): '))
term = int(input('기간(년): '))
rate = int(input('연 이율(%): '))

print('[단리 계산기]')
print(f'{term}년 후 총 수령액: {fromatedNumber(singleRateCalculator(money,term,rate))}')

print('[복리 계산기]')
print(F'{term}년 후 총 수령액: {fromatedNumber(compoundRateCalculator(money,term,rate))}')

[실습6]

: 등차 수열

def sequenceCal(n1,d,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)

:등비 수열

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 입력: '))
inputR = int(input('공비 입력: '))
inputN = int(input('n 입력: '))

sequenceCal(inputN1,inputR,inputN)



Reference

  • 이글은 제로베이스 데이터 취업 스쿨의 강의자료 일부를 발췌하여 작성되었음.
profile
데이터와 이미지로 세상을 공부하는 중입니다 :)

0개의 댓글