python中while循环中的停止点

时间:2015-11-04 02:36:53

标签: python

i=0
>>> while i<3:
...     print i
...     i += 1
... else:
...     print ‘Done with i =’, i
...
0
1
2
Done with i = 3

大家好,我想知道为什么在i = 3时完成while循环,而不是在i = 2时。当i = 2时,i = i + 1 = 2 + 1 = 3,表达式变为False,然后执行结束。不是吗?

2 个答案:

答案 0 :(得分:3)

else块中的while ... else始终执行。因此,您的while循环以i == 2结尾,但随后以i += 1递增,i == 3。然后,您的while循环退出,并执行else阻止。

答案 1 :(得分:0)

else块将始终执行。这和简单地写print "Done with i =", i一样。正如BlivetWidget所说,你正在向i添加1,然后执行else块。相反,您可以使用print "Done with i = ", i-1