我正在通过自动化无聊的东西,这是第5章中的第二个项目。出于某种原因,我的字典变成了"无"在调用将项添加到字典的函数之后。这是我的代码:
def displayInventory(anInventory):
item_total = 0
print("Inventory: \n")
for i, j in anInventory.items():
print(str(j) + " " + i)
item_total += j
print("\nTotal number of items: " + str(item_total))
def addToInventory(inventory, addedItems):
for i in addedItems:
if i in inventory:
inventory[i] += 1
else:
inventory[i] = 1
inv = {'gold coin': 42, 'rope': 1}
dragonLoot = ['gold coin', 'dagger', 'gold coin', 'gold coin', 'ruby']
inv = addToInventory(inv, dragonLoot)
displayInventory(inv)
我已将问题缩小到addToInventory函数,因为displayInventory函数可以正常工作。如果我在inv字典的创建下添加一个print语句,它会打印字典。但是,如果我在调用addToInventory函数后立即添加print语句,则会打印" None"。
我非常有信心这个功能运作良好,所以我很感激任何指出我的错误的帮助。谢谢!
答案 0 :(得分:2)
你的addToInventory函数没有返回任何内容,所以你在这一行指定None值:
inv = addToInventory(inv, dragonLoot)
使用简单的方法调用替换赋值:
addToInventory(inv, dragonLoot)
答案 1 :(得分:2)
您不会从addToInventory
返回任何内容。所以它是None
。