Python 循环结构中的 else

发布时间:2026/7/26 18:37:19

Python 循环结构中的 else 在 Python 中for和while循环都可以带一个else子句。这个else的行为和if-else完全不同——核心逻辑是“如果循环不是被break中断的就执行else块”。一、基本规则循环结束方式else子句是否执行正常结束条件不满足 / 迭代完毕执行被break中断不执行被return中断在函数内不执行被raise异常中断不执行二、for-else的用法查找元素def find_even(numbers): for n in numbers: if n % 2 0: print(f找到偶数: {n}) break else: print(没有找到偶数) find_even([1, 3, 5]) # 没有找到偶数 find_even([1, 3, 5, 8]) # 找到偶数: 8三、while-else的用法def retry_until_success(max_retries3): attempts 0 while attempts max_retries: attempts 1 print(f第 {attempts} 次尝试...) # 模拟某种操作 success attempts 2 # 模拟第二次成功 if success: print(操作成功) break else: print(f重试 {max_retries} 次后仍然失败)四、如果没有else的话如果没有else需要手动加一个标志变量# 不用 else 的写法 def find_even_no_else(numbers): found False for n in numbers: if n % 2 0: print(f找到偶数: {n}) found True break if not found: print(没有找到偶数) # 用 else 的写法更简洁 def find_even_with_else(numbers): for n in numbers: if n % 2 0: print(f找到偶数: {n}) break else: print(没有找到偶数)五、常见误区1把else理解为“循环结束时执行”这个理解不完整因为break时是不会执行的。2在if条件不满足时也执行了elseelse只跟循环和break相关跟循环内部的if条件无关。for i in range(3): if i 10: # 永远不成立 print(这个不会触发 break) break else: print(循环正常结束else 执行了) # 会执行因为 break 没有被触发else只有在循环“正常结束”时执行如果循环被break中途打断它就不会执行。最常见的用途是在循环中查找某个元素——找到了就用break退出不执行else没找到就自然结束执行else。

相关新闻