簡単な自販機のプログラミングを書いたのですが、周囲の添削してくれる人がいないので添削して頂きたいです。
主に添削してほしい箇所はコメントで記載しています。
しかし、全体としてコードが長く見ずらい部分が多々あるので、どこを関数化するなどのアドバイスも頂けますと幸いです。
前提条件として
・お札投入口はない
・投入は複数回
・投入金額の総計を取得できる
・払い戻しで、投入金額の総計をつり銭として出力
の4つがあります。
どなたか、ご指導ご鞭撻のほどよろしくお願いいたします。
python
1drink_lists = [["Cola",120,5],["Soda",100,4]] 2sum = int(0) 3sales_profit = int(0) 4 5while True: 6 select_button = input("chose button,1:投入,2:払い戻し,3:購入,4:在庫確認 \n") 7 8 if int(select_button) == 1: 9 10 print("使用できる通貨は,10円,50円,100円,500円の4種類です。 紙幣・1円と5円は使用することができません") 11 paid_in = input("金額を投入してください") 12 paid_in = int(paid_in) 13 14 #もっと簡略化できないか? 15 if paid_in == 10 or paid_in == 50 or paid_in == 100 or paid_in == 500: 16 sum = sum + paid_in 17 print("金額合計:",sum) 18 19 else: 20 print("指定外の硬貨が投入されました") 21 break 22 23 elif int(select_button) == 2: 24 print("払い戻しが選択されました \n 払い戻し金額:",sum) 25 sum = 0 26 break 27 28 elif int(select_button) == 3: 29 print("購入が選択されました \n 現在の投入金額:",sum) 30 31 i = int(0) 32 33 for drink_list in drink_lists: 34 print(i,":",drink_lists[i][0]) #print(drink_list[i][0])ではエラーが出る 35 i += 1 36 37 select_drink = input("購入する商品を選んでください \n") 38 39 #select_drink が数字の場合 40 if select_drink.isdigit(): 41 select_drink = int(select_drink) 42 #商品増加の都度、足していく必要がある? 43 if sum >= drink_lists[select_drink][1] and drink_lists[select_drink][2] >= 0: 44 print(drink_lists[select_drink][0] + "を購入しました\n") 45 #金額計算 46 sum = sum - drink_lists[select_drink][1] 47 #在庫減少 48 drink_lists[select_drink][2] -= 1 49 #売上計算 50 sales_profit = sales_profit + drink_lists[select_drink][1] 51 52 elif sum < drink_lists[select_drink][1]: 53 print("投入金額が足りません") 54 55 elif drink_lists[select_drink][2] == 0: 56 print("在庫がありません") 57 58 """ 59 存在しない商品を選ぶことはない前提で作る 60 else: 61 print("商品がありません") 62 break 63 64 """ 65 else: 66 print("商品を選択してください") 67 68 elif int(select_button) == 4: 69 print("売上は:",sales_profit,"円です") 70 i = 0 71 for drink_list in drink_lists: 72 #print(drink_list[i][0])ではエラーが出る 73 print("名前:",drink_lists[i][0],"値段",drink_lists[i][1],"在庫",drink_lists[i][2]) 74 i += 1 75 76 # 操作選択において、1,2,3,4以外(文字)が入力されたときの処理 77 else: 78 print("始めからやり直してください") 79
回答4件
あなたの回答
tips
プレビュー