Python,函数更改值
因此,我无法使该系统正常工作,并且不能确定我在问正确的问题,但是这是正在发生的事情以及我想发生的事情。
money = 1
def Stats():
print
print "money " + str(money)
def gainM():
money + 2
Stats()
if money == 1:
gainM()
现在,当进行打印时会发生什么,即使我将值加2,该值仍为1。(代码不是我实际程序的副本,而是显示正在发生的情况的示例。)
-
money + 2
是无人操作。您实际上必须分配money
一个新值money = money + 2 # or money += 2
但是随后您会发现您遇到了一个错误-您无法将其分配给函数范围之外的变量。您可以使用
global
关键字:global money money += 2
这将允许您更改
money
函数内的值。但是,推荐的方法是
money
作为参数传递:def gainM(money): money += 2 Stats() return money if money == 1: money = gainM(money)
如果您使用的是第二个选项(应该使用),则还需要更改
Stats
函数以具有money
参数。def Stats(money): print print "money " + str(money)
否则,将打印功能
1
而不是3
。另一个建议-使用字符串格式。
'money %d' % money # the old way 'money {}'.format(money) # the new and recommended way
现在,您传递
money
给Stats
函数。def gainM(money): money += 2 Stats(money) return money