Python 语法精炼13
else 语法结构
Python 的循环结构(for 或 while)都可以带一个可选的 else 子句:
1 | for item in iterable: |
1 | while condition: |
else 执行逻辑
| 情况 | 是否执行 else |
|---|---|
| 循环 正常执行完毕 | ✅ 执行 |
| 循环 被 break 提前终止 | ❌ 不执行 |
| 循环体 从未执行过 | ✅ 执行 |
| 循环中遇到 continue | ✅ 不影响 else 的执行 |
for...else 示例
示例 1:无 break,循环正常结束
1 | for i in range(3): |
输出:
1 | 0 |
✅ 因为循环没有被中断,else 执行。
示例 2:循环被 break 中断
1 | for i in range(5): |
输出:
1 | 0 |
❌ 因为循环被 break 打断,else 不执行。
示例 3:查找元素的典型用法
1 | nums = [2, 4, 6, 8] |
输出:
1 | 没找到。 |
✅ 这种用法最常见:“循环中没找到,就执行 else”
(可以把 else 理解为 “for 没有被 break 终止时执行的后续处理”)
while...else 示例
示例 1:正常结束执行 else
1 | i = 0 |
输出:
1 | 0 |
示例 2:break 中断则不执行 else
1 | i = 0 |
输出:
1 | 0 |
❌ 因为用了 break,else 不执行。
设计哲学
Python 的 else 不是 “if 的 else”,而更像是 “no-break 子句”:
else表示循环没有被 break 打断时要执行的语句。
可以记作伪逻辑:
1 | for/while 循环: |
应用场景
- 搜索任务:在序列中查找是否存在某个元素;
- 验证任务:循环验证一批条件,全部通过才执行 else;
- 超时重试逻辑:在 while 循环中重试多次,如果没提前退出,就执行 else。
例如:
1 | attempts = 0 |
注意事项
else不是 “循环条件为 False 执行”;- 只要 没有 break,就会执行;
- 如果循环体一次都没执行,
else仍然会执行。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Telason!
