这是我的代码:
def displayInventory ():
print ("Inventory: " + str(inventory))
def enterEcdysis():
global xcash
xcash -= 1
displayInventory()
xcash = 3
inventory = [str(xcash) + ' Cash',]
enterEcdysis()
我正在尝试打印['2 Cash,']
,但是运行时它仍然显示为3
。我不确定我在做什么错。 xcash -= 1
是否不应该从全局变量中删除一个?
答案 0 :(得分:3)
正在更新xcash
。问题是inventory
已过期。您将在调用['3 Cash']
之前将其设置为enterEcdysis()
,并且在修改xcash
之后不会更新它。
将打印语句更改为直接打印xcash
,您会发现它运行正常:
def displayInventory ():
print ("Inventory: {} Cash".format(xcash))
答案 1 :(得分:1)
xcash = 3
inventory = [str(xcash) + ' Cash',]
enterEcdysis()
考虑上面的代码行。 您已经使用 xcash 的当前值(在调用 enterEcdysis 之前为3)创建并设置了变量 inventory 。 在 enterEcdysis 中,您已从 xcash 的值减去1,但变量 inventory 保持不变。 因此,稍后显示变量 inventory 的值时,定义后 inventory 的值仍会显示(当 xcash < / em>仍等于3。)
def displayInventory ():
print ("Inventory: " + str(inventory) + "\t" + str(xcash))
如果您如上所述修改 displayInventory ,您会看到 xcash 的值确实已更改,但您尚未更改 inventory < / em>。