循环内可调用变量的限制

时间:2017-03-08 14:03:40

标签: python python-3.x while-loop

一个非常简单的例子:

n=1
a=n
x=1
y=a+1
while (y-x) <10:
    n+=1
    print(x,y)
    print(n,a)

这将进入无限循环:

x= 1 y= 2
n= 2 a= 1
x= 1 y= 2
n= 3 a= 1
x= 1 y= 2
n= 4 a= 1
x= 1 y= 2
n= 5 a= 1
x= 1 y= 2
n= 6 a= 1
x= 1 y= 2
n= 7 a= 1

如您所见,循环正在更新n,但可以调用a,但n未更新为更新的y值。我想知道为什么会这样。如果n+1只是System.setProperty("webdriver.gecko.driver", ".\\WebDrivers\\geckodriver.exe"); ,就属于这种情况。

1 个答案:

答案 0 :(得分:5)

int个对象的操作(+=此处)总是创建一个新的整数对象,它不会改变以前的值。因此,尽管n分配,a的更改仍未反映在a = n中。

每次更改a的值时,您需要将n重新绑定到n

while (y-x) <10:
    n += 1
    a = n