假设我写了一段代码:
for i in range(10):
print(i)
i=11
为什么循环现在不终止?
即使我这样做了:
n=10
for i in range(n):
print(i)
n=0
它不影响循环吗?
我只是想知道 python 是如何管理循环变量的?
请您参考如下方法:
Python for 循环基于迭代,而不是条件。它们在到达 StopIteration 时停止,而不是在某个 bool 条件的计算结果为 False 时停止。
range 创建一个在迭代期间不能更改的临时范围对象。在 range(10) 或 range(n) 或任何调用之后,此对象完全独立于用于创建它的对象。
您可能预料到会发生这样的事情(C 代码):
for (int i = 0; i < 10; ++i) {
printf("%d ", i);
i = 11;
}
这不是 for 循环在 Python 中的工作方式。它更类似于此:
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;
}
