for i in range(n)是我们编写python代码时经常会用到的循环语句,今天在用到这条语句时发现了一些有趣的现象,予以记录
(1):
在该语句中,i的循序渐进是不受内部改变所影响的,列如:
for i in range(6):
if i%2==0:
i=99
print i,
==>99 1 99 3 99 5
可以看到,尽管在for循环内部,也就是i的可执行域内改变了i的值,但是并没有影响到i的下一个值,从而循环依旧正常执 行。
(2):
range(n)内的n值如果是可变值,也不会影响到i的值和循环的执行,列如:
List = [1,1,1,1,1,1]
for i in range(len(List)):
if i%2==0:
List.remove(1)
print i,
print i
print len(List)
==>0 1 2 3 4 5 # i的值变化过程
5 # i的最终值
3 # List列表的最终长度