質問編集履歴

1

コードが読めないので、書式を直してくださいとのご指摘ありましたので直しました。スミマセン...

2020/05/03 05:45

投稿

XocvOrmaz
XocvOrmaz

スコア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
- File "C:\Users\ifari\Desktop\python\test#3.py", line 19, in <module>
111
+ File "C:\Users\ifari\Desktop\python\test#3.py", line 19, in <module>
110
-
112
+
111
- display_inventory(inv)
113
+ display_inventory(inv)
112
-
114
+
113
- File "C:\Users\ifari\Desktop\python\test#3.py", line 10, in display_inventory
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
- AttributeError: 'NoneType' object has no attribute 'items'
143
+ inv = {'gold medals': 42, 'ropes': 1}
118
-
119
-
120
-
121
- ※『演習問題は以下です(原文ママ)』で(※後述)とした display_inventory のコードは、プログラム中の
144
+
122
-
123
-
124
-
145
+
146
+
125
- def display_inventory(inventory):
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
  しかし、書籍中で示されていた形とは違うので、もし書籍中で示されていた形で正しくプログラムされていたらどういったものになるのか、教えていただきたいです。