Python目录字典文本游戏

Python目录字典文本游戏,python,python-3.x,Python,Python 3.x,我使用anaconda3>python3>spyder3。我目前正在做一个基于文本的生存游戏。我正在用字典做我的目录。我已经知道如何从我的库存中添加和删除物品,但是我有一些def blablabla():在我的游戏市场中用于购买和销售物品。问题是,我不确定我的市场是否应该使用def blablabla():。但最重要的是,在def buythistuff():中,我使用了一行代码来检查我是否有足够的货币来购买该物品。这就是我得到一个错误的地方,它说:TypeError:“>”在“str”和“in

我使用anaconda3>python3>spyder3。我目前正在做一个基于文本的生存游戏。我正在用字典做我的目录。我已经知道如何从我的库存中添加和删除物品,但是我有一些
def blablabla():
在我的游戏市场中用于购买和销售物品。问题是,我不确定我的市场是否应该使用
def blablabla():
。但最重要的是,在
def buythistuff():
中,我使用了一行代码来检查我是否有足够的货币来购买该物品。这就是我得到一个错误的地方,它说:
TypeError:“>”在“str”和“int”的实例之间不受支持。
这是我的清单代码:

inventory = {'coins':'750',
"Loaf of Bread": "2",
"Bottle of Water": "3",}
def displayInventory(inventory):
    print("Inventory:")
    item_total = (inventory.values())
    item_total = sum(map(int, item_total))
    for k, v in inventory.items():
        print(v + '   ' + k)
    print("Total number of items: " + str(item_total))
displayInventory(inventory)
要将项目添加到我的库存,我使用:

inventory['Rock'] = '3'
删除:

del inventory['Rock']
以下是错误代码:

def MarketBuyFishingRod ():
    global coins
    if inventory['coins':] > 299:
        inventory['coins'] = inventory['coins'] - 300
        print ("You have bought a fishing rod for 300 coins!")
        time.sleep(1)
        print ("Now in your inventory you have:")
        #inventory = inventory + ["Loaf of Bread", ]
        inventory['Fishing Rod'] = '1'
        print (inventory)
        InvFishingRod = True
     else:
        print ("You need to have at least 300 coins to buy a Fishing Rod!")
(错误在第3行)

如清单代码所示,您从750枚硬币开始。现在我需要
defmarketbuyfishingrod():
检查玩家的库存中是否有超过299枚硬币。不幸的是,这引发了一个我不知道如何修复的错误。请回复并帮助我,我将非常感谢你的帮助。
如果您需要任何额外的信息,请回复,我会回答。

回答:对于字典目录,例如
目录={'Coins'='42','Loaf Bread'='2',}
,请确保将值更改为int:
'Coins'=42',Loaf Bread'=2
。如果您想要外观,并且希望您的库存看起来像这样:
42金币
1根绳子
6把手电筒,而不是这样:
{'Coins'=42,'Loaf Bread'=2}
,将此代码添加到您的库存中(建议将其放入库存定义())
用于库存中的k,v。items():

打印(“{}{}.format(v,k))

您应该真正了解它。所有这些故事和代码都与解决一个简单的
TypeError
无关。。。不管怎样,有什么不清楚的错误吗?
inventory
的值是字符串(
'750'
'2'
等),并且
299
是一个整数。执行
int(inventory[“coins”])
或将值保存为整数:
inventory={“coins”:750}
获取不支持的操作数类型-:'str和'int'
错误。更改库存字符串整数没有帮助:
int(库存={'coins':'750',})
。目标:
def FishingRod():
如果玩家拥有超过299个“硬币”,则检查库存。这是我的完整代码:
inventory={'coins':'750',}def displayInventory(inventory):print(inventory)displayInventory(inventory)def FishingRod():if inventory['coins]>“299”:inventory['coins']=inventory['coins']]-300 inventory['FishingRod]='1'print(inventory)FishingRod()
Full code:inventory={'coins':'750',}def display inventory(inventory):print(inventory)display inventory(inventory)def FishingRod():if inventory['coins]>“299”:inventory['coins']=inventory['coins']-300 inventory['FishingRod']='1'打印(库存)FishingRod()如我所说,将值更改为整数。为什么将硬币金额保存为字符串?更改为
inventory={'coins':750}
我将库存字符串更改为整数,谢谢,它确实解决了我的问题,但我必须删除代码:
表示库存中的k,v。items():print(v+“”+k)
它会像这样打印我的清单:
12个箭头42个金币
但现在它像这样打印我的清单:
{'Coins':750}
。如果我恢复我必须删除的代码,我会得到以下错误:
打印(v+“”+k)类型错误:不支持的+:'int'和'str'的操作数类型
if inventory['coins':] > 299: