Python的循环都可以定义else代码块,当循环条件为False 时,程序会执行else代码块。如下代码示范了为while循环定义else代码块。
# !/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2024/01
# @Author : Laopi
count_i = 0
while count_i < 5:
print('count_i小于5:',count_i)
count_i+=1
else:
print('count_i大于或等于5:',count_i)
运行之后,如下:
从上面的运行过程来看,当循环条件count i<5变成False 时,程序执行了while循环的else代码块。
简单来说,程序在结束循环之前,会先执行 else代码块。从这个角度来看,else代码块其实没有太大的价值一一将 else 代码块直接放在循环体之外即可。也就是说,上面的循环其实可改为如下形式。
count_i = 0
while count_i < 5:
print('count_i小于5:',count_i)
count_i+=1
print('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)