У меня есть три словаря, каждый из которых «инвентарь», как в видеоигре.
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}
Я пытаюсь создать очень базовую c функцию, которая проверяет, существует ли введенный вами элемент в другом инвентаре вы вводите, и мой код для этого -
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
, это тоже не исправит.