본문 바로가기
프로그램

[파이썬] 문제 : 커피 자판기

by 오디세이99 2022. 12. 12.
728x90
반응형

 

menu = {'뜨아':2000, '아아':3000, '라떼':3500, '모카':4000}   # 메뉴를 딕셔너리로 정의

def viewMenu(m):                                    # 메뉴 보여주는 함수
    tmp = ''                                        # 
    idx = 1
    print('** 자판기 메뉴 **')
    for key, value in m.items():                    # items로 키와 값 받음
        print(str(idx) + ' : ' + key + '  ' + str(value))  # 음료명과 가격 문자열 만듬
        idx += 1

def calculate(m, drink_no, money):            # 음료수와 거스름돈 내주는 함수 정의
    price= m[list(m.keys())[drink_no]]        # 딕셔너리에서 음료병으로 가격 찾음
    c = money - price                         # 현금 - 가격 으로 거스름돈 계산
    return c                                 # 음료명과 가스름돈 리턴


viewMenu(menu)                                 # 메뉴 보여주는 함수 실행

money = int(input('돈을 입력하세요 : '))       # 돈 입력 받음
while True:
    drink_no = int(input('메뉴를 선택하세요(종료:0) : '))  # 음료 선택 입력

    if drink_no == 0:                            # 0 입력시 종료
        print(f'자판기 종료, 잔액 {money} 반환')     
        break                                    # break로 while 반복문 빠져나감
    elif drink_no > len(menu):                   # 매뉴 선택 번호가 크면 잘 못 입력 출력
        print('잘 못 입력하였습니다.')
    else:
        c = calculate(menu, drink_no-1, money)   # 메뉴와 거스름돈 내주는 함수 실행
        print(f"{list(menu.keys())[drink_no-1]} 구입 완료")
        print(f"잔액 : {c}")   # 출력
        money = c              # 잔액을 보유 금액으로 대입

728x90
반응형

댓글