如何添加一个全局数字,然后使其递归在一个函数?



我正试图将一些旧的批处理游戏代码翻译成Python,我所坚持的是将全局数字添加到5,然后在函数中进行递归。

原批号:

:MomsRoom
title Mommy's Roomy
set /a money=%money%+5
cls
echo You steal some money from your mom's purse.
echo Cash Money: $%money%
pause>nul
goto HOME

我试图把它翻译成Python:

def LabelMomsRoom():
os.system('title Mommys Roomy' if os.name == 'nt' else 'pass')
money = money+5
cls()
print ("You steal some money from your mom's purse.")
print ("Cash Money:$",(money))
pause()
LabelHOME()

我期望的结果是每次访问函数时,一个数字增加5。我的实际结果是5加到原来的数上,然后保持5不变。我已经被这个问题困了好几天了,需要一些帮助。

提前感谢。

默认情况下,LabelMomsRoom()函数中的money变量是本地的——它只存在于该函数的作用域中。如果您在函数外部声明了一个外部变量,并且希望引用它,则需要使用全局keyword。考虑这个例子:

money = 0
def foo():
global money
money = money + 5
bar()
def bar():
global money
money = money + 5
foo()
print(money)

这里,函数中money变量的global关键字意味着该变量应该从函数作用域之外引用一个变量。您可以看到,在本例中,结果将是10。请注意,通常不鼓励使用全局变量,而应该将值作为函数参数传入。但如果你想尽量接近原始代码,也许这是一个选择。

最新更新