gpt4 book ai didi

python - 缺少字典值

转载 作者:太空宇宙 更新时间:2023-11-04 01:05:28 25 4
gpt4 key购买 nike

我正在 http://automatetheboringstuff.com/chapter5/ 做最后一个练习.出于某种原因,我无法让 displayInventory(inv) 函数在 addToInventory() 函数之外返回正确的值。

代码如下:

def displayInventory(inventory):
print("Inventory:")
item_total = 0
for k, v in inventory.items():
print(str(v) + ' ' + k)
item_total += v
print("Total number of items: " + str(item_total))

def addToInventory(inventory, addedItems):
for k in addedItems:
if k in inventory:
inv[k] = inv[k] + 1
print('You have ' + str(inv[k]) + ' ' + k + 's')
else:
print(k + ' is not in inventory')
inventory.setdefault(k, 1)
print()
displayInventory(inv) #does work

inv = {'gold coin': 42, 'rope': 1}
displayInventory(inv)
print()
dragonLoot = ['gold coin', 'dagger', 'gold coin', 'gold coin', 'ruby']
inv = addToInventory(inv, dragonLoot)
print()
displayInventory(inv) #Doesn't work

我收到错误:AttributeError: 'NoneType' object has no attribute 'items'看起来 inv 字典是空的。为什么它被清空以及为什么函数外的值不同?

最佳答案

您的 addToInventory() 函数返回 None,因为您没有特定的 return 语句。

由于该函数就地修改了字典,所以您不应该使用返回值;删除 inv = 部分:

# ignore the return value; do not replace `inv` with it
addToInventory(inv, dragonLoot)

关于python - 缺少字典值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30719206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com