DATA 사전캠프

15일차 Python 스터디: 스파르타 자판기

sawo11 2024. 11. 23. 02:39
  • 파이썬 코드를 이용해 자판기를 만들어 봅시다.
  1. 사용자가 볼 수 있게 메뉴를 표시합니다.
    • 다음과 같은 음료를 실행창에 표시합니다.
      • 사이다 1,700원
      • 콜라 1,900원
      • 식혜 2,500원
      • 솔의눈 3,000원
  2. 사용자는 음료를 선택할 수 있습니다.
    • 사용자에게 어떤 음료를 살 것인지를 입력받습니다.
      • ex) 사이다
      • 목록에 없는 음료일 경우 실행이 종료됩니다.
  3. 사용자는 지불할 금액을 입력할 수 있습니다.
    • 사용자에게 얼마를 넣을지 입력받습니다.
      • ex) 2000
      • 지불하는 금액이 선택한 음료의 비용보다 작다면 “돈이 부족합니다.” 를 출력합니다
  4. 사용자는 음료를 구매하고 남은 잔액을 확인할 수 있습니다.
    • 잔액을 화면에 표시합니다.
      • ex) 입력한 돈 2000원, 사이다 1700원 일때 300원을 잔액으로 보여줍니다.
# 음료 목록과 가격을 딕셔너리로 정의
beverages = {
    "사이다": 1700,
    "콜라": 1900,
    "식혜": 2500,
    "솔의눈": 3000
}

# 메뉴 출력
print("=== 자판기 음료 메뉴 ===")
for key, value in beverages.items():
    print(f"{key}: {value}원")
print("=======================")

# 사용자로부터 음료 선택
user_choice = input("음료를 선택해주세요")

# 음료가 메뉴에 없을 경우 종료
if user_choice in beverages.keys():
    print(beverages.keys())
else:
    print("선택한 음료는 자판기에 없습니다. 프로그램을 종료합니다.")
    exit()

# 음료의 가격 가져오기
selected_price = beverages[user_choice]
print(f"선택한 음료: {user_choice} ({selected_price}원)")

# 사용자로부터 금액 입력
coin = input("금액을 투입해주세요 (원 단위): ")
try:
    coin = int(coin)  # 금액을 정수형으로 변환
except ValueError:
    print("잘못된 금액을 입력하였습니다. 프로그램을 종료합니다.")
    exit()

# 금액 비교 및 처리
if coin < selected_price:
    print(f"돈이 부족합니다. 필요한 금액: {selected_price - coin}원")
else:
    remain = coin - selected_price
    print(f"음료 {user_choice}를 구매하였습니다! 잔액: {remain}원")
    
# 너무 어렵다