循环结构中加入 else 语句的用法

循环的 else 子句只在循环运行完成后才会执行。也就是说,如果循环体根本不执行,就立即执行 else 内容,否则在最后一次迭代后执行。但是,如果先一步使用 break 语句终止了循环,else 子句将被跳过。

循环的 else 子句的首要用途是在数据循环迭代过早终止时,在代码中设置一些标志或条件,或者对这些标志和条件进行检查。

例如:

flag = False
for line in open("foo.txt"):
    stripped = line.strip()
    if not stripped:
        flag = True
        break
    # 处理读出的行
    ...
if not flag:
    raise RuntimeError("Missing section separator")

如果使用 else 子句,可以简化成这样:

for line in open("foo.txt"):
    stripped = line.strip()
    if not stripped:
        break
    # 处理读出的行
    ...
else:
    raise RuntimeError("Missing section separator")