else 子句不仅能在 if 语句中使用,还能在 for、while 和 try 语句中使用。
else 子句的行为如下。
for
仅当 for 循环运行完毕时(即 for 循环没有被 break 语句中止)才运行 else 块。
while
仅当 while 循环因为条件为假值而退出时(即 while 循环没有被 break 语句中止)才运行 else 块。
try
仅当 try 块中没有异常抛出时才运行 else 块。官方文档(https://docs.python.org/3/reference/compound_stmts.html)
还指出:“else 子句抛出的异常不会由前面的 except 子句处理。”
在所有情况下,如果异常
或者 return
、break
或 continue
语句导致控制权跳到了复合语句 的主块之外,else
子句也会被跳过。
在这些语句中使用 else
子句通常能让代码更易于阅读,而且能省去一些麻烦,不用设置控 制标志或者添加额外的 if 语句。