본캠프

파이썬 자율학습 2. 자판기 만들기

pinehouse13 2025. 5. 16. 20:27

오늘의 핵심 학습 키워드

# menu.items() #menu.keys()

 

1. 자판기 만들기

 

다음과 같은 조건을 만족하는 자판기를 만들어 보자.

 

1. 다음과 같은 음료를 실행창에 표시

  • 사이다 : 1700원
  • 콜라 : 1900원
  • 식혜 : 2500원
  • 솔의눈 : 3000원

2. 사용자가 구매할 메뉴명을 입력

  • 만약 존재하지 않는 메뉴라면 안내 후 실행종료
  • ex) 사이다

3. 메뉴명 입력 완료 시 투입할 금액을 입력받고, 입력한 금액이 메뉴의 가격보다 높다면 메뉴명과 구입금액, 잔돈 표시

  • 메뉴의 가격보다 적은 금액 투입 시 금액 부족 안내 후 프로그램 종료

 

위 문제를 해결하기 위해서는 딕셔너리에서 키와 값을 튜플 형태로 반환하는 기능에 대한 이해가 필요하다.

 

menu = {'사이다':1700,'콜라':1900,'식혜':2500,'솔의눈':3000} # 메뉴 딕셔너리
print('-----메뉴-----')
for menu_name, menu_price in menu.items(): # 메뉴 딕셔너리에거 각 키와 값을 튜플 형태로 받아오기
    print(f"{menu_name} : {menu_price}원") # 키(Key)는 menu_name에, 값(Value)는 menu_price에 반환됨
print('-------------')

input_name = input('메뉴명을 입력해주세요 : ') # 메뉴명 입력
if input_name in menu.keys(): # 딕셔너리 menu에서 입력한 메뉴가 있는지 체크
    input_pay = int(input('투입할 금액을 입력해주세요 :')) # 메뉴가 있는 경우 금액 입력
    if input_pay >= menu[input_name]: # 입력한 금액이 입력한 메뉴의 가격보다 큰지 체크
        print(f"{input_name}를 {menu[input_name]}원에 구매했습니다.") # 구매한 메뉴와 가격 표시
        print(f"잔돈 : {input_pay-menu[input_name]}원") # 잔돈 표시
    else: # 입력한 메뉴의 가격보다 투입금액이 적을 시
        print('투입 금액이 부족합니다.')
        exit() # 프로그램 종료
else: # 입력한 메뉴가 없는 경우
    print('그런 메뉴는 없습니다.')
    exit() # 프로그램 종료