使用 else 子句简化循环(慎用)
一、说明
python 可以在for及while的内部语句之后紧跟一个else块。
只有当整个循环主体都没有遇到break语句时,循环后面的else块才会执行
def print_prime(n): for i in range(2, n): found = True for j in range(2, i): if i % j== 0: found = False break if found: print("{} is a prime number".format(i)) # 这两个函数等价 def print_prime2(n): for i in range(2, n): for j in range(2, i): if i % j == 0: break else: print("{} is a prime number".format(i))
当循环“自然”终结(循环条件为假)时 else 从句会被执行一次,而当循环是由 break 语句中断时, else 子句就不被执行。
与 for 语句相似, while 语句中的 else 子句的语意是一样的: else 块在循环正常结束和循环条件不成立时被执行。
在 Python 的异常处理中,也提供了 else 子句语法, try 块没有抛出任何异常时,执行else 块。
Python 的异常处理中有一种 try-except-else-finally 形式。
不建议使用这种形式,因为晦涩难懂。