概要
タイトルのとおりです。券売機を前にとまどいを隠せなかったです。
そんなやりきれない思いを、Pythonで再現してみました。
コード
# 2022/08/02 "和え麺" 屋さんの券売機のボタンが "油そば" だった事件
okane = 1000
menus = {"油そば":750, "鶏ラーメン":800, "塩ラーメン":800}
def show_menu():
print("=====おしながき=====")
for menu in menus:
print(" {}:{}円".format(menu,menus[menu]))
print("=====================\n")
show_menu()
while True:
want = input("何を食べる? >>>")
if want == "":
pass
elif want in menus.keys():
print(want + "を注文した!")
okane -= menus[want]
print(str(okane) + "円のおつり。")
break
else:
print(want + "が見つからない。\n")
show_menu()
実行結果
PS C:\Users\XXXX\Documents\python\my>
=====おしながき=====
油そば:750円
鶏ラーメン:800円
塩ラーメン:800円
=====================
何を食べる? >>>和え麺
和え麺が見つからない。
=====おしながき=====
油そば:750円
鶏ラーメン:800円
塩ラーメン:800円
=====================
何を食べる? >>>油そば
油そばを注文した!
250円のおつり。
PS C:\Users\XXXX\Documents\python\my>
所感
- 注文が決まるまでは無限ループなので、while True: を使ってみました。inputを要求して、空だったらpassして再度input、の流れは使い勝手がよさそうです。
- 簡単ながら、関数定義もしてみました。注文しようと思っていたメニューが見つからなかった時に、もう一度券売機のボタンを確認する動きの再現ですね。
- print(menus)だと味気なかったので、繰り返しとformatを使ってメニューボードっぽくしてみました。辞書の勉強がもっと必要。
- おつりの処理はおまけ。せっかく辞書型にしたので、活用しようと思っただけです。
- 和え麺おいしかったです。ラーメンも食べたい。