0
Help us understand the problem. What are the problem?

posted at

【Python】"和え麺" 屋さんの券売機のボタンが "油そば" だった事件

概要

タイトルのとおりです。券売機を前にとまどいを隠せなかったです。
そんなやりきれない思いを、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を使ってメニューボードっぽくしてみました。辞書の勉強がもっと必要。
  • おつりの処理はおまけ。せっかく辞書型にしたので、活用しようと思っただけです。
  • 和え麺おいしかったです。ラーメンも食べたい。

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
0
Help us understand the problem. What are the problem?