循环中的 else 语句是 Python 的一个独特特性,它提供了一种优雅的方式来处理循环是否正常完成(即没有通过 break 语句提前退出)的情况。
核心概念
循环中的 else 子句只在一种情况下执行:循环正常完成所有迭代,没有遇到 break 语句。
可以把这想象成一个 “任务完成确认” 机制:
• 如果循环顺利跑完了所有该跑的内容,就执行 else 块
• 如果循环中途被 break 打断了,就跳过 else 块
基本语法
for-else 结构
for item in iterable:
# 循环体代码
if condition:
break # 可能提前退出循环
else:
# 只有在循环正常完成(没有遇到break)时执行
print("循环正常完成")
while-else 结构
while condition:
# 循环体代码
if other_condition:
break # 可能提前退出循环
else:
# 只有在循环正常完成(没有遇到break)时执行
print("循环正常完成")
- 循环异常终止不会执行else中的命令
- 循环正常终止会执行else中的命令
- break会造成程序异常终止 continue不会导致程序异常终止
循环的 else 子句在循环正常完成(没有遇到 break)时执行
这是一种优雅的方式来处理"搜索失败"或"所有检查通过"的情况
不要将循环的 else 与 if 的 else 混淆
这种语法是 Python 特有的,可能与其他编程语言不同
使用循环的 else 子句可以使代码更加清晰和简洁,特别是在需要区分循环是正常完成还是被提前终止的场景中。
# 回顾: if语句中的else是什么意思? 当判断条件不满足要求时 执行else中的命令
"""
循环中的else:
格式:
while 条件:
循环体 #这一块 循环正常结束时 执行下面的else
else:
代码块
当条件不满足时 执行else中的代码
______________________________________________
for 临时变量 in 容器类型:
循环体 #这一块 循环正常结束时 执行下面的else
else:
代码块
当容器类型的元素遍历完后执行else语句
#如果 循环体没有正常结束 就不会执行下面的else
while循环 不是 (条件不满足) 的终止 属于异常终止
for循环中 元素 没有 (遍历完) 的终止 属于异常终止
循环正常结束 不会执行else语句
continue 不会造成循环的异常结束
"""
for i in range(10):
print(f'第{i + 1}个安装包已经下载完成')
print("所有文件已经下载完成") # 循环正常结束时 会执行此代码
for i in range(10):
print(f'第{i + 1}个安装包已经下载完成')
if i+1 == 3:
print("终止交易")
break
print("所有文件已经下载完成") # 循环没有正常结束时 也执行此代码
for i in range(10):
print(f'第{i + 1}个安装包已经下载完成')
if i+1 == 3:
print("终止交易")
break
else:
print("所有文件已经下载完成") # 循环没有正常结束时 不执行此代码