Python
자판기 프로그램
hyungminjeon
2024. 5. 29. 16:11
[문제]
파이썬 코드를 이용해 자판기를 만들어보세요.
- 사용자가 볼 수 있게 메뉴를 표시합니다.
- 다음과 같은 음료를 실행창에 표시합니다.
- 사이다 1,700원
- 콜라 1,900원
- 식혜 2,500원
- 솔의눈 3,000원
- 다음과 같은 음료를 실행창에 표시합니다.
- 사용자는 음료를 선택할 수 있습니다.
- 사용자에게 어떤 음료를 살 것인지를 입력받습니다.
- ex) 사이다
- 목록에 없는 음료일 경우 실행이 종료됩니다.
- 사용자에게 어떤 음료를 살 것인지를 입력받습니다.
- 사용자는 지불할 금액을 입력할 수 있습니다.
- 사용자에게 얼마를 넣을지 입력받습니다.
- ex) 2000
- 지불하는 금액이 선택한 음료의 비용보다 작다면 “돈이 부족합니다.” 를 출력합니다
- 사용자에게 얼마를 넣을지 입력받습니다.
- 사용자는 음료를 구매하고 남은 잔액을 확인할 수 있습니다.
- 잔액을 화면에 표시합니다.
- ex) 입력한 돈 2000원, 사이다 1700원 일때 300원을 잔액으로 보여줍니다.
- 잔액을 화면에 표시합니다.
[시도]
1.메뉴를 표시하기 위해 딕셔너리 데이터형을 사용하여 데이터를 저장하고 for loop과 items() 함수를 사용하여 메뉴를 출력하였다.
2. keys() 함수를 이용해 user가 딕셔너리에 속한 key값을 선택했는지 확인하였다.
3,4. if else 조건문을 통해 1)사용자가 입력한 돈이 부족한 경우와 2)음료를 구매하고 남은 잔액을 확인할 수 있는 경우를 나누었다.
[해결]
#메뉴 표시
def drink_machine():
beverages = {
"사이다":1700,
"콜라":1900,
"식혜":2500,
"솔의눈":3000
}
for key, value in beverages.items():
print(f'{key}: {value}')
#음료 선택
user_choice = input("음료를 선택해 주세요: ")
if user_choice not in beverages.keys():
break
else:
#금액 투입
balance = input("금액을 투입해주세요: ")
balance = int(balance)
#결과
if balance < beverages[user_choice]:
print("돈이 부족합니다.")
else:
remain = balance-beverages[user_choice]
print(f"입력한 돈 {balance}원, {user_choice} {beverages[user_choice]}원어치를 구매하셔서 잔액이 {remain}원 남았습니다.")
drink_machine()
[정리 및 새롭게 알게된 점]
key value 값을 이용하여 딕셔너리에 속한 아이템 데이터들을 활용할 수 있었고 변수선언과 조건문을 활용해 프로그램의 흐름을 제어할 수 있었다.