前提・実現したいこと
pythonで自動販売機のモデルみたいなのを作っています。しかしinputの型はstring だと知っていても型についてのエラーが出てしまいます。どうしたらよろしいでしょうか?
発生している問題・エラーメッセージ
--------------------------------------------------------------------------- NameError Traceback (most recent call last) <ipython-input-4-5d5168a40431> in <module> 38 return returnOrNot 39 ---> 40 moneyPut = decide('a') 41 # __________________________________________________________________ 42 #自動販売機の飲み物の種類をタプル型で表示 NameError: name 'decide' is not defined
該当のソースコード
python
1from datetime import date 2#todayに日付を入れる 3today = date.today() 4#Drinkクラスを作成 5class Drink: 6 def __init__(self, name, price, count): 7 self.name = name 8 self.price = price 9 self.count = count 10 self.lamp = False 11#お金を返却させるための関数 12 def returnMoney(self, moneyToReturn): 13 if int(moneyPut) > 1: 14 return str(moneyToReturn) + "円が返却されます。" 15 self.moneyPut = '0' 16#ランプ表示の関数 17 def SoldOutLamp(self): 18 if self.count == 0: 19 self.lamp = True 20 else: 21 self.lamp = False 22 23 if self.lamp == False: 24 return 'can buy' 25 else: 26 return 'sold out' 27 def decide(self, i): 28 if i == 'a': 29 moneyPut = int(input('put money')) 30 return moneyPut 31 elif i == 'b': 32 liquid = int(input('what to drink? 0:cola, 1:water, 2:tea')) 33 return liquid 34 else: 35 returnOrNot=int(input('返金しますか? 0:Yes, 1:No :')) 36 return returnOrNot 37 38moneyPut = decide('a') 39# __________________________________________________________________ 40#自動販売機の飲み物の種類をタプル型で表示 41cola = Drink('cola', 150, 40) 42water = Drink('water', 100, 3) 43tea = Drink('tea', 140, 0) 44 45#これらをdrinksでまたタプルにする 46drinks = (cola, water, tea) 47#ここでお金を入れる 48# decide('a') 49 50#ここで飲み物を選ぶ 51liquid = decide('b')
やりたいこと
●目標_______________________________
1. 必要金額が投入されている場合に、飲み物ボタンが押されると缶を出す
2. 売切れランプの追加(売切れの時は購入できない)
もし可能ならなぜエラーが出てきてしまうのか教えてもらうことって可能でしょうか?
本当にお願いします!
またクラスの中の関数を使って出されたliquidという数字を使ってdrinks[liquid].name のような事ってできますか?
### 補足情報(FW/ツールのバージョンなど) python 3.73です。
回答2件
あなたの回答
tips
プレビュー