Skip to main content
 首页 » 编程设计

python之在 `for` 循环中使用 `range(x)`

2025年05月04日18cloudgamer


这两个代码块不应该打印相似的结果吗?为什么每次到达内部 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 

这样又继续了两次。