使用 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 形式。

不建议使用这种形式,因为晦涩难懂。

posted @ 2020-03-07 11:16  qsl_你猜  阅读(314)  评论(0编辑  收藏  举报