python中退出多层循环的方法
1、定义标记变量;利用变量值的变化退出循环
#第一种嵌套形式 a=[[1,2,3],[5,5,6],[7,8,9]] #init_i=0 #init_j=0 flag=True foriinrange(3): forjinrange(3): #print(i,j) ifa[i][j]==5: flag=False init_i=i init_j=j break ifnotflag: break print(init_i,init_j) print(i,j) #第二种嵌套形式 flag=True whileflag: foriinrange(10): print(x) flag=False break
2、使用函数配合return关键字实现跳出循环(在函数内部只要执行完return语句则直接退出函数)
deftest(): whileTrue: forxinrange(10): print(x) return test()
3、利用elsecontinue和外层的break跳出循环
a=[[1,2,3],[5,5,6],[7,8,9]] init_i=0 init_j=0 flag=True foriinrange(3): forjinrange(3): #print(i,j) ifa[i][j]==5: flag=False init_i=i init_j=j break else: continue break #ifnotflag: #break print(init_i,init_j) print(i,j) whileTrue: forxinrange(4): print(x) ifx==2: break else: print("未执行") continue break
python跳出多层循环的方法
今天同事问我一个python面试题,关于python跳出多层循环,原来还真没用过,网上一查还真有点意思,下面记录一下:
Python本身没有“breakn”和“goto”的语法,这也造成了Python难以跳出多层(特定层数)循环。下面是几个跳出多层(特定层数)循环的tip。
1、自定义异常
classgetoutofloop(Exception):pass try: foriinrange(5): forjinrange(5): forkinrange(5): ifi==j==k==3: raisegetoutofloop() else: printi,'----',j,'----',k exceptgetoutofloop: pass
2、封装为函数return
deftest(): foriinrange(5): forjinrange(5): forkinrange(5): ifi==j==k==3: return else: printi,'----',j,'----',k test()
3、for...else...用法
上面的两种都是只能跳出多层而不能跳出特定层数的循环,接下来的这个正是为了跳出特定层数的循环。
foriinrange(5): forjinrange(5): forkinrange(5): ifi==j==k==3: break else: printi,'----',j,'----',k else:continue break else:continue break
else在while和for正常循环完成之后执行,和直接写在while和for之后没有区别,但是如果用break结束循环之后else就不会执行了。这也是个很新奇的做法。
才知道原来可以作为跳出多层循环用。不过要是有多次跳出不同层的循环的需求,也没辙了。
总结
以上所述是小编给大家介绍的python中退出多层循环的方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!