i=0
>>> while i<3:
... print i
... i += 1
... else:
... print ‘Done with i =’, i
...
0
1
2
Done with i = 3
大家好,我很奇怪,爲什麼while循環完成當i = 3,而不是當i = 2。當i = 2時,i = i + 1 = 2 + 1 = 3,表達式變爲False,然後執行結束。這不正確嗎?在while循環的停止點蟒蛇
i=0
>>> while i<3:
... print i
... i += 1
... else:
... print ‘Done with i =’, i
...
0
1
2
Done with i = 3
大家好,我很奇怪,爲什麼while循環完成當i = 3,而不是當i = 2。當i = 2時,i = i + 1 = 2 + 1 = 3,表達式變爲False,然後執行結束。這不正確嗎?在while循環的停止點蟒蛇
while ... else
塊中的else
總是執行。所以你的while
循環以i == 2
結尾,但是你用i += 1
增加,所以i == 3
。然後你的while
循環退出,並執行else
塊。
else
塊將始終執行。這與簡單地寫print "Done with i =", i
是一樣的。正如BlivetWidget所說的,您正在將1添加到i
,然後執行else塊。相反,你可以使用print "Done with i = ", i-1
。
咦?就像你說的,當我是2時,它會檢查,打印2,然後將我遞增到3,然後再次檢查,這次檢查將是錯誤的,因此它將退出while循環, t會突然出現,其他的會在我設置爲3時觸發。 – Foon
我的想法是new_i = old_i + 1,當old_i是2時,new_i變成3並且循環結束,所以我應該是2(舊的)。 –