前提・実現したいこと
pythonで簡単な買い物アプリを作っています。
客からの購入量の入力値を受け取り合計金額を出そうとしています。
0,1,2,3以外の入力をはじくためtryexcept処理を使用しました。
発生している問題・エラーメッセージ
tryexcept処理でエラーが出ています
エラーメッセージ
Traceback (most recent call last):
File "script_R2.py", line 30, in order_taking
order = int(order)
ValueError: invalid literal for int() with base 10: 'a'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "script_R2.py", line 39, in <module>
order = order_taking()
File "script_R2.py", line 33, in order_taking
return oder_taking()
NameError: name 'oder_taking' is not defined
該当のソースコード
class MenuItem:
def init(self,name,price):
self.name = name
self.price = price
def info(self): return self.name+":¥"+str(self.price) def get_total_price(self,count): total_price = self.price*count if count >= 3: total_price *= 0.9 return round(total_price)
menu_item1 = MenuItem("サンドイッチ",500)
menu_item2 = MenuItem("チョコケーキ",400)
menu_item3 = MenuItem("コーヒー",300)
menu_item4 = MenuItem("オレンジジュース",200)
menu_items = [menu_item1,menu_item2,menu_item3,menu_item4]
index = 0
for menu_item in menu_items:
print(str(index)+"."+menu_item.info())
index += 1
__**def order_taking():
order = input("何番を注文されますか")
try:
order = int(order)
except:
print("0,1,2,3でお答えください")
return order_taking()
if order < 0 or order > 3:
print("メニューは1から3までです")
return order_taking()
else:
return order
order = order_taking()**__
どなたかご教示お願い致します。
回答1件
あなたの回答
tips
プレビュー