当前位置: 首页 > 后端技术 > Python

你知道Python打断多重循环的几种方式吗?

时间:2023-03-26 14:31:14 Python

1。跳出单循环无论是什么编程语言,都可能需要跳出循环。比如枚举的时候,找到一个满足条件的数,就终止。单循环跳出很简单,比如foriinrange(10):ifi>5:print(i)break但是有时候我们需要跳出多个循环,break只能跳出一层循环的,比如foriinrange(10):forjinrange(10):ifi+j>5:print(i,j)break这段代码并不是说当一组i+j>5是找到了,但是要连续找到10组,因为break只是跳出了forjinrange(10)的重循环。那么,如何才能跳出倍数呢?在这里记下。2、跳出多重循环其实Python的标准语法是不支持跳出多重循环的,所以只能使用一些技巧。大致的思路是:写函数,用笛卡尔积,用调试。当然,最常见的想法是使用变量表示法deff():flag=0foriinrange(10):forjinrange(i):ifi+j>5:print(i,j)flag=1breakifflag==1:breakif__name__=="__main__":f()写成一个函数在Python中,函数运行到return语句就会停止,所以可以利用这个特性来写函数作为终止多个循环的函数,例如defwork():foriinrange(10):forjinrange(10):ifi+j>5:returni,jprint(work())的思路使用笛卡尔积的方法是,既然可以跳出单循环,我就把多个循环重写成一个循环,可以用itertools中的笛卡尔积函数product,比如'''我遇到问题却没人能回答?小编创建了一个Python学习交流群:531509025,寻找志同道合的小伙伴互相帮助。群里还有不错的视频学习教程和PDF电子书!'''fromitertoolsimportproductfori,jinproduct(range(10),range(10)):ifi+j>5:print(i,j)break使用调试模式笛卡尔积的方式很很巧妙,也很简洁,但是只能在各个循环的set独立的情况下使用。如果每个循环都与前一层密切相关,则不能使用此技术。这时候可以使用第一种方法,把它写成一个函数。此外,您还可以使用调试模式。这就利用了debug模式出错就退出的原理,伪装错误。classFound(Exception):passtry:foriinrange(10):forjinrange(i):#第二个循环与第一个循环相关ifi+j>5:raiseFoundexceptFound:print(i,j)