for 与 else 连用代表 else 块需要在 for 语句是自然退出(即迭代完成)而不是手动 break 掉之后运行。例如:
- for i in [1, 2, 3]:
- print(i)
- if i == 2:
- break
- else:
- print("完成")
复制代码
在这一段代码中, for 循环体运行到 i = 2 的时候满足条件,执行 break 语句,因为 for 执行了 break 语句,所以运行完 for 语句后 else 块的内容会被跳过,输出结果是:
再来看下面这个代码:
- for i in [1, 3, 5]:
- print(i)
- if i == 2:
- break
- else:
- print("完成")
复制代码
这一段代码相较于上一段,将 [1, 2, 3] 改为了 [1, 3, 5] ,这样 i 不会等于 2 , break 语句也就不会执行,这样运行完 for 语句后就会执行 else 块的内容,输出结果是:
else 语句不仅能与 if 语句和 for 语句连用,也能和 while 语句和 try 语句连用。
while 示例:
- i = 2
- while i < 5:
- i += 1
- print(i)
- if i == 10:
- break
- else:
- print("完成")
复制代码
与 for 语句是一样的逻辑,会输出:
try 示例:
- try:
- open("test.txt")
- except FileNotFoundError:
- print("文件缺失")
- else:
- print("找到 test.txt")
复制代码
这里的 else 块代表 try 块没有抛出任何异常时执行,例如这行代码中:
如果代码文件夹中有 test.txt 文件,会输出
而如果没有,则会输出