l
作为参数传递给range
其值在内部被修改的函数for
循环,但循环是为了10
次而不是5
.
i = 0
l = 10
for i in range(l):
print i,l
l = l-1
输出是
0 10
1 9
2 8
3 7
4 6
5 5
6 4
7 3
8 2
9 1
虽然我预料到了
0 10
1 9
2 8
3 7
4 6
Does range()
仅第一次评估价值还是其他原因?
No, the for
循环仅计算可迭代表达式一次。
range()
叫做once,以及for
循环然后迭代结果。
引用自for声明文件 http://docs.python.org/2/reference/compound_stmts.html#the-for-statement:
表达式列表为评价一次;它应该产生一个可迭代的对象。
强调我的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)