質問編集履歴
1
もっとわかりやすいように変更しました!お願いします。
title
CHANGED
File without changes
|
body
CHANGED
@@ -5,23 +5,20 @@
|
|
5
5
|
|
6
6
|
```
|
7
7
|
---------------------------------------------------------------------------
|
8
|
-
|
8
|
+
NameError Traceback (most recent call last)
|
9
|
-
<ipython-input-
|
9
|
+
<ipython-input-4-5d5168a40431> in <module>
|
10
|
+
38 return returnOrNot
|
10
|
-
|
11
|
+
39
|
11
|
-
90 #お金を投入したレシート用の表示
|
12
|
-
--->
|
12
|
+
---> 40 moneyPut = decide('a')
|
13
|
-
92
|
14
|
-
|
13
|
+
41 # __________________________________________________________________
|
14
|
+
42 #自動販売機の飲み物の種類をタプル型で表示
|
15
15
|
|
16
|
-
|
16
|
+
NameError: name 'decide' is not defined
|
17
|
-
|
18
17
|
```
|
19
18
|
|
20
19
|
### 該当のソースコード
|
21
20
|
|
22
21
|
```python
|
23
|
-
|
24
|
-
#レシートのためのdatetimeモヅェール
|
25
22
|
from datetime import date
|
26
23
|
#todayに日付を入れる
|
27
24
|
today = date.today()
|
@@ -48,15 +45,18 @@
|
|
48
45
|
return 'can buy'
|
49
46
|
else:
|
50
47
|
return 'sold out'
|
51
|
-
|
52
48
|
def decide(self, i):
|
53
49
|
if i == 'a':
|
54
50
|
moneyPut = int(input('put money'))
|
51
|
+
return moneyPut
|
55
52
|
elif i == 'b':
|
56
53
|
liquid = int(input('what to drink? 0:cola, 1:water, 2:tea'))
|
54
|
+
return liquid
|
57
55
|
else:
|
58
56
|
returnOrNot=int(input('返金しますか? 0:Yes, 1:No :'))
|
59
|
-
|
57
|
+
return returnOrNot
|
58
|
+
|
59
|
+
moneyPut = decide('a')
|
60
60
|
# __________________________________________________________________
|
61
61
|
#自動販売機の飲み物の種類をタプル型で表示
|
62
62
|
cola = Drink('cola', 150, 40)
|
@@ -70,60 +70,6 @@
|
|
70
70
|
|
71
71
|
#ここで飲み物を選ぶ
|
72
72
|
liquid = decide('b')
|
73
|
-
|
74
|
-
#お金を投入したレシート用の表示
|
75
|
-
message1 = (drinks[liquid].name + 'を買うためにお金を' + moneyPut + "入れました。")
|
76
|
-
|
77
|
-
# __________________________________________________________________
|
78
|
-
|
79
|
-
#飲み物を選び残高またはお金が足りないとでる(100円以下はないので100円の時点でループに入らない)
|
80
|
-
while int(moneyPut) > 100:
|
81
|
-
if int(moneyPut) < 140 and (liquid == 0 or liquid == 2):
|
82
|
-
message2 = ('しかし'+ drinks[liquid].name +'を買うためのお金が足りないため買えませんでした。/n レシートは以上です。')
|
83
|
-
message3 = 'なにもなし'
|
84
|
-
break
|
85
|
-
|
86
|
-
elif int(moneyPut) < 150 and (liquid == 2):
|
87
|
-
print('not enough money')
|
88
|
-
message2 = ('しかし'+ drinks[liquid].name +'を買うためのお金が足りないため買えませんでした。/n レシートは以上です。')
|
89
|
-
message3 = 'なにもなし'
|
90
|
-
break
|
91
|
-
|
92
|
-
else:
|
93
|
-
message2 = ("あなたの残高は{}円です。".format(int(moneyPut)))
|
94
|
-
if drinks[liquid].count == 0:
|
95
|
-
print(drinks[liquid].SoldOutLamp())
|
96
|
-
|
97
|
-
else:
|
98
|
-
#最終的な金額
|
99
|
-
moneyToReturn = int(moneyPut) - int(drinks[liquid].price)
|
100
|
-
|
101
|
-
#レシート用のメッセージ
|
102
|
-
message3 = '買った後の残金は' + str(moneyPut) + "です"
|
103
|
-
|
104
|
-
#返金させるか聞く
|
105
|
-
# returnOrNot=int(input('返金しますか? 0:Yes, 1:No :'))
|
106
|
-
returnOrNot = decide('c')
|
107
|
-
if returnOrNot == 0:
|
108
|
-
push = True
|
109
|
-
message4 = (drinks[liquid].returnMoney(moneyToReturn))
|
110
|
-
else:
|
111
|
-
message4 = 'buying'
|
112
|
-
|
113
|
-
break
|
114
|
-
|
115
|
-
#レシート作成________________________________________________________
|
116
|
-
print("今日の日付________________\n" + str(today) + "\n")
|
117
|
-
print("自動販売機レシート__________\n" + message1 + "\n")
|
118
|
-
print("あなたの残高_________\n" + message2 + "\n")
|
119
|
-
print("購入後の残高_______________\n" + message3 + "\n")
|
120
|
-
print("返却金額__________________\n" + message4)
|
121
|
-
# __________________________________________________________________
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
73
|
```
|
128
74
|
|
129
75
|
|
@@ -131,10 +77,9 @@
|
|
131
77
|
●目標_______________________________
|
132
78
|
1. 必要金額が投入されている場合に、飲み物ボタンが押されると缶を出す
|
133
79
|
2. 売切れランプの追加(売切れの時は購入できない)
|
134
|
-
3. 返金処理
|
135
80
|
もし可能ならなぜエラーが出てきてしまうのか教えてもらうことって可能でしょうか?
|
136
81
|
本当にお願いします!
|
137
|
-
|
82
|
+
またクラスの中の関数を使って出されたliquidという数字を使ってdrinks[liquid].name のような事ってできますか?
|
138
83
|
```
|
139
84
|
### 補足情報(FW/ツールのバージョンなど)
|
140
85
|
python 3.73です。
|