任何編程語言都提供了 if...else... 語句,表示如果(if)滿足條件就做某件事,否則(else)就做另外一件事:
if a==b:
print("true")
else:
print("false")
然而,在 Python 中 else 不僅可以和 if 搭配使用,還有另一種特有的句法是 for…else …,除此之外,它還可以和 while、try…except 組合使用,例如:
for i in range(5):
print(i)
else:
print("打印else")
但是,你會發現for..else...與if...else..表現的不一樣,按照以往的經驗來說,執行了for語句塊中的代碼就不執行else裏面的,反之亦然.
然而,我們看到的卻恰恰相反,for 循環結束之後接着又執行了 else 語句塊,這就有點意思了,if … else … 翻譯成白話就是 如果…否則…,而 for…else… 翻譯成白話成了 直到… 然後 …,爲什麼不把它寫成 for…then… 的句式呢?這不更好理解嗎?
另外,即使 for 循環遍歷的是一個空列表也會執行 else 語句塊。
for i in []:
print(i)
else:
print('end')
如果我們用break提前終止for循環,
for i in range(3):
print(i)
if i %2==0:
break
else:
print('end')
循環遇到 break 退出後,整個語句就結束,else 語句塊也不執行了。