1 python
所以我无法让这个系统工作,我无法确定我是在问正确的问题,但这里发生了什么,我想要发生什么.
money = 1
def Stats():
print
print "money " + str(money)
def gainM():
money + 2
Stats()
if money == 1:
gainM()
Run Code Online (Sandbox Code Playgroud)
现在当它去打印钱时会发生什么,即使我在值上加2,该值仍为1.(代码不是我实际程序的副本,而是一个显示正在发生的事情的示例.)
money + 2是一个无操作.您实际上必须分配money一个新值
money = money + 2
# or
money += 2
Run Code Online (Sandbox Code Playgroud)
但是你会发现你得到一个错误 - 你不能分配给函数范围之外的变量.您可以使用global关键字:
global money
money += 2
Run Code Online (Sandbox Code Playgroud)
这将允许您更改money函数内的值.
但是,推荐的方法是money作为参数传递:
def gainM(money):
money += 2
Stats()
return money
if money == 1:
money = gainM(money)
Run Code Online (Sandbox Code Playgroud)
如果您正在使用第二个选项(您应该使用),您还需要更改您的Stats功能,以获得money参数.
def Stats(money):
print
print "money " + str(money)
Run Code Online (Sandbox Code Playgroud)
否则该函数将打印1而不是3.
另一个建议 - 使用字符串格式.
'money %d' % money # the old way
'money {}'.format(money) # the new and recommended way
Run Code Online (Sandbox Code Playgroud)
现在你money进入这个Stats功能.
def gainM(money):
money += 2
Stats(money)
return money
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7885 次 |
| 最近记录: |