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