質問編集履歴
1
コードが読めないので、書式を直してくださいとのご指摘ありましたので直しました。スミマセン...
test
CHANGED
File without changes
|
test
CHANGED
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
持ち物リストにアイテムを追加する add_to_inventory(inventory, added_items) という関数を書きなさい。ただし、引数inventoryは、前述のようなプレイヤーの持ち物リストを表し、引数 added_items は dragon_loot のようなリストだとします。関数 add_to_inventory() は、更新した辞書を返すようにしてください。リスト added_items には、同じアイテムが複数回出現しうることに注意しましょう。次のようなコードになると思います。
|
20
20
|
|
21
|
-
|
21
|
+
```Python
|
22
22
|
|
23
23
|
def add_to_inventory(inventory, added_items):
|
24
24
|
|
@@ -32,7 +32,7 @@
|
|
32
32
|
|
33
33
|
display_inventory(inv)
|
34
34
|
|
35
|
-
|
35
|
+
```
|
36
36
|
|
37
37
|
前述の display_inventory (※後述)を使えば、次のように表示されるでしょう。
|
38
38
|
|
@@ -58,7 +58,7 @@
|
|
58
58
|
|
59
59
|
原文中の金貨をgold medals, 手裏剣をdirks, ルビーをrubies, ロープをropesと置き換えて書いています。
|
60
60
|
|
61
|
-
|
61
|
+
```Python
|
62
62
|
|
63
63
|
def add_to_inventory(inventory, added_items):
|
64
64
|
|
@@ -96,9 +96,11 @@
|
|
96
96
|
|
97
97
|
display_inventory(inv)
|
98
98
|
|
99
|
-
|
99
|
+
```
|
100
|
-
|
100
|
+
|
101
|
+
|
102
|
+
|
101
|
-
これを出力すると、以下のようにな
|
103
|
+
これを出力すると、以下のようになってしまいます。
|
102
104
|
|
103
105
|
|
104
106
|
|
@@ -106,23 +108,81 @@
|
|
106
108
|
|
107
109
|
Traceback (most recent call last):
|
108
110
|
|
109
|
-
|
111
|
+
File "C:\Users\ifari\Desktop\python\test#3.py", line 19, in <module>
|
110
|
-
|
112
|
+
|
111
|
-
|
113
|
+
display_inventory(inv)
|
112
|
-
|
114
|
+
|
113
|
-
|
115
|
+
File "C:\Users\ifari\Desktop\python\test#3.py", line 10, in display_inventory
|
116
|
+
|
117
|
+
for k, v in inventory.items():
|
118
|
+
|
119
|
+
AttributeError: 'NoneType' object has no attribute 'items'
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+
※『演習問題は以下です(原文ママ)』で(※後述)とした display_inventory のコードは、プログラム中の
|
124
|
+
|
125
|
+
```Python
|
126
|
+
|
127
|
+
def display_inventory(inventory):
|
128
|
+
|
129
|
+
print('List of My Inventory:')
|
130
|
+
|
131
|
+
item_total = 0
|
114
132
|
|
115
133
|
for k, v in inventory.items():
|
116
134
|
|
135
|
+
print(str(v) + ' ' + k)
|
136
|
+
|
137
|
+
item_total = item_total + v
|
138
|
+
|
139
|
+
print('Item Total: ' + str(item_total))
|
140
|
+
|
141
|
+
|
142
|
+
|
117
|
-
|
143
|
+
inv = {'gold medals': 42, 'ropes': 1}
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
144
|
+
|
122
|
-
|
123
|
-
|
124
|
-
|
145
|
+
|
146
|
+
|
125
|
-
d
|
147
|
+
display_inventory(inv)
|
148
|
+
|
149
|
+
```
|
150
|
+
|
151
|
+
の部分で、こちらは正常に作動しました。
|
152
|
+
|
153
|
+
|
154
|
+
|
155
|
+
#別パターンで正常に出力されたプログラム
|
156
|
+
|
157
|
+
こちらも私が書いたプログラムで、書籍中で示されていた形とは違うパターンで書いてみたプログラムなのですが、こちらは正常に
|
158
|
+
|
159
|
+
|
160
|
+
|
161
|
+
持ち物リスト:
|
162
|
+
|
163
|
+
45 金貨
|
164
|
+
|
165
|
+
1 ロープ
|
166
|
+
|
167
|
+
1 ルビー
|
168
|
+
|
169
|
+
1 手裏剣
|
170
|
+
|
171
|
+
アイテム総数: 48
|
172
|
+
|
173
|
+
|
174
|
+
|
175
|
+
と出力されました。
|
176
|
+
|
177
|
+
```Python
|
178
|
+
|
179
|
+
def add_to_inventory(inventory, added_items):
|
180
|
+
|
181
|
+
for added_items in dragon_loot:
|
182
|
+
|
183
|
+
inventory.setdefault(added_items, 0)
|
184
|
+
|
185
|
+
inventory[added_items] = inventory[added_items] + 1
|
126
186
|
|
127
187
|
print('List of My Inventory:')
|
128
188
|
|
@@ -138,72 +198,16 @@
|
|
138
198
|
|
139
199
|
|
140
200
|
|
201
|
+
dragon_loot = ['gold medals', 'dirks', 'gold medals', 'gold medals', 'rubies']
|
202
|
+
|
141
203
|
inv = {'gold medals': 42, 'ropes': 1}
|
142
204
|
|
143
205
|
|
144
206
|
|
145
|
-
display_inventory(inv)
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
の部分で、こちらは正常に作動しました。
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
#別パターンで正常に出力されたプログラム
|
154
|
-
|
155
|
-
こちらも私が書いたプログラムで、書籍中で示されていた形とは違うパターンで書いてみたプログラムなのですが、こちらは正常に
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
持ち物リスト:
|
160
|
-
|
161
|
-
45 金貨
|
162
|
-
|
163
|
-
1 ロープ
|
164
|
-
|
165
|
-
1 ルビー
|
166
|
-
|
167
|
-
1 手裏剣
|
168
|
-
|
169
|
-
アイテム総数: 48
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
と出力されました。
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
def add_to_inventory(inventory, added_items):
|
178
|
-
|
179
|
-
for added_items in dragon_loot:
|
180
|
-
|
181
|
-
inventory.setdefault(added_items, 0)
|
182
|
-
|
183
|
-
inventory[added_items] = inventory[added_items] + 1
|
184
|
-
|
185
|
-
print('List of My Inventory:')
|
186
|
-
|
187
|
-
item_total = 0
|
188
|
-
|
189
|
-
for k, v in inventory.items():
|
190
|
-
|
191
|
-
print(str(v) + ' ' + k)
|
192
|
-
|
193
|
-
item_total = item_total + v
|
194
|
-
|
195
|
-
print('Item Total: ' + str(item_total))
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
dragon_loot = ['gold medals', 'dirks', 'gold medals', 'gold medals', 'rubies']
|
200
|
-
|
201
|
-
inv = {'gold medals': 42, 'ropes': 1}
|
202
|
-
|
203
|
-
|
204
|
-
|
205
207
|
add_to_inventory(inv, dragon_loot)
|
206
208
|
|
209
|
+
```
|
210
|
+
|
207
211
|
|
208
212
|
|
209
213
|
しかし、書籍中で示されていた形とは違うので、もし書籍中で示されていた形で正しくプログラムされていたらどういったものになるのか、教えていただきたいです。
|