【发布时间】:2020-06-16 20:09:51
【问题描述】:
我有三本词典,每一本都是像电子游戏中一样的“库存”
playerInventory = {"arrow": 12, "gold coin": 42, "rope": 1, "torch": 6, "dagger": 1}
inv = {'gold coin': 42, 'rope': 1}
dragonLoot2 = {"gold coin": 3, "dagger": 1, "ruby": 1}
我正在尝试创建一个非常基本的函数来检查您输入的项目是否存在于您输入的另一个库存中,我的代码是
def checkItem(inventory, item):
print("You have " + str(inventory.get(item, 0)) + " of " + str(item))
kolla_item = input("Item to check: ")
kolla_inventory = input("Inventory to check: ")
checkItem(kolla_inventory, kolla_item)
这给了我'str' object has no attribute 'get 定义checkItem 的错误。我已尝试删除str 并删除命令周围的任何括号以获取您拥有的所述项目的数量,但没有任何效果我仍然不断收到该错误。但是我注意到,如果我将项目作为字符串手动输入,并且像下面这样的字典,它就可以正常工作
checkItem(dragonLoot2, "ruby")
所以由于某种原因,项目输入在输入时不是字符串?将str( 放在kolla_item 输入提示周围也不会修复它。
【问题讨论】:
-
你能添加整个错误跟踪吗?
-
因为参数是一个字符串。你在做
checkItem("dragonLoot2", "ruby")。 输入总是一个字符串。