我是一个很大的初学者,但我有一个具有值的变量,我想在函数内更改它,以便在函数外部永久更改变量。搜索我发现了一些有关如何访问外部变量的信息(我认为它们称为全局变量),但不会以任何方式永久修改它们。
这里有一些代码表示我试图做的是:
x = 0
def variableChanger():
global x
x =+ 1
variableChanger()
print(x)
variableChanger()
print(x)
variableChanger()
print(x)
这个想法是它会有控制台输出......
>>> 1
>>> 2
>>> 3
因为它正在通过向其添加一个来更改全局x
变量。但是它正在创建一个名为x
的新全局变量,并在每次运行1
函数时将其值设置为variableChanger()
,而我最终会...
>>> 1
>>> 1
>>> 1
我想要做的是访问代码顶部的变量x
并将其递增,以便随时随地访问它时,它具有递增的值。
有办法吗?
答案 0 :(得分:2)
这是因为你每次都重新分配x
。 x =+ 1 != x += 1
。 x =+ 1
将x
分配给1
; x += 1
, augmented assignment statement ,将x
增加一个:
x = 0
def variableChanger():
global x
x += 1
variableChanger()
print(x)
variableChanger()
print(x)
variableChanger()
print(x)
答案 1 :(得分:0)
赋值运算符中的+号是错误的。它应该在左边:
def variableChanger():
global x
x += 1
您正在做的只是简单地将x分配给+1的值;它将继续被分配到1。