为什么这不会产生无限循环?
a=5
for i in range(1,a):
print(i)
a=a+1
或这个
for i in range(1,4):
print(i)
i=i-1
或这个
for i in range(1,4):
print(i)
i=1
有什么方法可以使用 for
循环创建无限循环吗?我知道有 while
循环,但我只是好奇。
原文由 Nischal 发布,翻译遵循 CC BY-SA 4.0 许可协议
range
是一个 类,并且像range(1, a)
一样使用创建该类的 _对象_。该对象仅创建 _一次_,不会在循环的每次迭代中重新创建。这就是第一个示例不会导致无限循环的原因。其他两个循环不是无限的,因为与
range
对象不同,循环变量i
每次迭代 都会 重新创建(或者更确切地说是重新 _初始化_)。您在循环内分配给i
的值将在循环迭代时被覆盖。