这两个代码块不应该打印相似的结果吗?为什么每次到达内部 for 语句时,内部循环内部的 range 函数都重新计算,而外部循环中的 range 函数仅计算一次?
x = 4
for j in range(x)
for i in range(x)
print i
x = 2
结果
0
1
2
3
0
1
0
1
0
1
我知道打印的前 4 个整数 ( 0 - 3 ) 是代码的结果
for j in range(x): code 但为什么还打印了以下内容?
0
1
0
1
0
1
代码
x = 4
for j in range(x):
print i
x = 5
打印
0
1
2
3
附加信息 处于空闲状态的 Python 2.7
最佳答案
我只能通过遍历循环的迭代来解释,所以这里是:
x = 4
for j in range(x)
for i in range(x)
print i
x = 2
第一次通过。
x = 4
for j in [0, 1, 2, 3]
for i in range [0, 1, 2, 3]
print i
x = 2
打印
0
1
2
3
现在x设置为2,但是外层循环范围已经执行过了,所以不重新计算。
代码现在变成:
for j in [0, 1, 2, 3]:
for i in [0, 1]:
print i
x = 2
打印
0
1
这样又继续了两次。
关于python - 在 `for` 循环中使用 `range(x)`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15687339/