两个代码块不应该打印出相似的结果吗?为什么每次到达inner for语句时内部循环内部的范围函数都会重新求值,而outerloop中的范围函数只计算一次?在
x = 4
for j in range(x)
for i in range(x)
print i
x = 2
结果
0
1
2
<3/>
0
1
<0 br/>
1
0
1
我知道打印的前4个整数(0-3)是代码的结果
对于范围(x)中的j:代码,但为什么还要打印以下内容?
0
1
0
1
0
1
代码
^{pr2}$
打印
0
1
2
3
附加信息
python2.7在空闲状态下
Tags:
范围(x)只计算一次,即当循环开始时,这就是为什么在循环内修改x没有效果。在
但是,在第一个代码时钟中,您将内部的x更改为2,因此下次执行内部循环时,range只给出(0,1)。在
编辑:您的第一个代码块相当于
函数
range(x)
生成[0,1,2,3,4]
的列表。在for
循环中,您迭代该列表。在您的代码相当于:
我只能通过遍历循环的迭代来解释,因此:
第一次通过。在
^{pr2}$印刷品
现在x被设置为2,但是外部循环范围已经被执行,所以它不会被重新计算。在
代码现在变成:
印刷品
这又持续了两次。在
相关问题 更多 >
编程相关推荐