python如何跳出多层循环

php break 后面是可以带数量,表示跳出的层数,python如何跳出多层循环呢?

以 python3 代码为例,有以下几种方法。

打包函数,使用 return

def sai():
    for i in range(10):
        for j in range(10):
            if i + j > 13:
                return i, j

print(sai())

将循环逻辑打包成一个单独的函数,满足条件直接 return

变量标记

def flag():
    btn = False
    for i in range(10):
        for j in range(10):
            if i + j > 13:
                btn = True
                break
        if btn:
            break
    print(i, j)


flag()

使用 btn 标记,btn == True 则继续跳出。

for/else

def loop():
    for i in range(10):
        for j in range(10):
            if i + j > 13:
                break
        else:
            continue
        break
    print(i, j)


loop()

raise Exception

class Break(Exception):
    pass


try:
    for i in range(10):
        for j in range(10):
            if i + j > 13:
                raise Break
except Break:
    print(i, j)

总感觉这个方法不太优雅。

以上几种方法就是针对多层循环的跳出,我个人倾向于抽象个函数,当然了,习惯哪种如你所想。

如果有其他好的方式,欢迎分享。


python如何跳出多层循环
https://blog.puresai.com/2023/01/13/471/
作者
puresai
许可协议