Python的循環都可以定義else代碼塊,當循環條件為False 時,程序會執行else代碼塊。如下代碼示范了為while循環定義else代碼塊。
# !/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2024/01# @Author : Laopicount_i = 0while count_i < 5:print('count_i小于5:',count_i)count_i+=1else:print('count_i大于或等于5:',count_i)
運行之后,如下:
從上面的運行過程來看,當循環條件count i<5變成False 時,程序執行了while循環的else代碼塊。
簡單來說,程序在結束循環之前,會先執行 else代碼塊。從這個角度來看,else代碼塊其實沒有太大的價值一一將 else 代碼塊直接放在循環體之外即可。也就是說,上面的循環其實可改為如下形式。
count_i = 0while count_i < 5:print('count_i小于5:',count_i)count_i+=1print('count_i大于或等于5:',count_i)
上面代碼直接將else代碼塊放在while 循環體之外程序執行結果與使用else代碼塊的執行結果完全相同。
循環的else代碼塊是Python的一個很特殊的語法(其他編程語言通常不支持),else代碼塊的
主要作用是便于生成更優雅的Python代碼。for循環同樣可使用else代碼塊當for循環把區間元組或列表的所有元素遍歷一次之后,for循環會執行 else 代碼塊,在 else 代碼塊中,循環計數器的值依然等于最后一個元素的值。例如如下代碼。
listdemo = [3,56,21,'測試劃水老師傅',-9]for ele in listdemo:print('元素:',ele)else:#訪問循環計數器的值,依然等于最后一個元素的值print('else塊:',ele)