先看下面这个for循环,很普通,输出结果0,1,2,3。 没毛病。
In [1]: for i in range(4):
...: print i
然后看下面几个例子:
例子一、
In [1]: for i in range(4):
...: print i
...: i = 10
...:
0
1
2
3
例子二、
In [2]: for i in range(4):
...: print i
...: i = 10
...: print i
...:
0
10
1
10
2
10
3
10
例子三、
In [3]: for i in [0,1,2,3,10]:
...: print i
...: i = 10
...:
0
1
2
3
10
例子四、
In [4]: for i in [0,1,2,3,10]:
...: print i
...: i = 10
...: else:
...: print i
...:
0
1
2
3
10
10
可能会觉得例一只循环一遍,输出结果是1。二三也是类似的道理。
但是在Python的循环方式中,每次循环开始的时候都会重新给i赋值,所以不管给i重新赋值多少,下次循环开始的时候都是一个新值。尽管i=10下面的语句可以运行,但不会影响到下次循环。
例四简单了,和上面没太大关系,只是在循环结束的时候执行else里面的语句。