Python 中,無論是 while 循環還是 for 循環,其後都可以緊跟著一個 else 代碼塊,它的作用是當循環條件為 False 跳出循環時,程序會最先執行 else 代碼塊中的代碼。
以 while 循環為例,下面程序演示了如何為 while 循環添加一個 else 代碼塊:
add = "http://c.biancheng.net/python/"
i = 0
while i < len(add):
print(add[i],end="")
i = i + 1
else:
print("\n執行 else 代碼塊")
程序執行結果為:
http://c.biancheng.net/python/
執行 else 代碼塊
上面程序中,當i==len(add)結束循環時(確切的說,是在結束循環之前),Python 解釋器會執行 while 循環後的 else 代碼塊。
有讀者可能會覺得,else 代碼塊並沒有什麼具體作用,因為 while 循環之後的代碼,即便不位於 else 代碼塊中,也會被執行。例如,修改上面程序,去掉 else 代碼塊:
add = "http://c.biancheng.net/python/"
i = 0
while i < len(add):
print(add[i],end="")
i = i + 1
#原本位於 else 代碼塊中的代碼
print("\n執行 else 代碼塊")
程序執行結果為:
http://c.biancheng.net/python/
執行 else 代碼塊
那麼,else 代碼塊真的沒有用嗎?當然不是。後續章節介紹 break 語句時,會具體介紹 else 代碼塊的用法。
當然,我們也可以為 for 循環添加一個 else 代碼塊,例如:
add = "http://c.biancheng.net/python/"
for i in add:
print(i,end="")
else:
print("\n執行 else 代碼塊")
程序執行結果為:
http://c.biancheng.net/python/
執行 else 代碼塊