假设我写了一段代码:
for i in range(10):
print(i)
i=11
Run Code Online (Sandbox Code Playgroud)
为什么循环现在不终止?
即使我这样做:
n=10
for i in range(n):
print(i)
n=0
Run Code Online (Sandbox Code Playgroud)
它不会影响循环吗?
我只是想知道python如何管理循环变量?
Python for循环基于迭代,而不是条件。它们在StopIteration到达时停止,而不是在某个布尔条件求和时停止False。
range创建一个临时范围对象,该对象在迭代过程中不能更改。之后range(10)或range(n)或什么是所谓的,这个对象是完全独立的使用了什么来创建它。
您可能期望发生这样的事情(C代码):
for (int i = 0; i < 10; ++i) {
printf("%d ", i);
i = 11;
}
Run Code Online (Sandbox Code Playgroud)
这不是Python中for循环的工作方式。与此类似:
int range[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
for (int count = 0; count < 10; ++count) {
int i = range[count];
printf("%d ", i);
i = 11;
}
Run Code Online (Sandbox Code Playgroud)