1、定义标记变量;利用变量值的变化退出循环
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# 第一种嵌套形式
a = [[ 1 , 2 , 3 ], [ 5 , 5 , 6 ], [ 7 , 8 , 9 ]]
# init_i = 0
# init_j = 0
flag = True
for i in range ( 3 ):
for j in range ( 3 ):
# print(i, j)
if a[i][j] = = 5 :
flag = False
init_i = i
init_j = j
break
if not flag:
break
print (init_i, init_j)
print (i, j)
# 第二种嵌套形式
flag = True
while flag:
for i in range ( 10 ):
print (x)
flag = False
break
|
2、使用函数配合return关键字 实现跳出循环(在函数内部只要执行完return语句 则直接退出函数)
1
2
3
4
5
6
|
def test():
while True :
for x in range ( 10 ):
print (x)
return
test()
|
3、利用else continue 和外层的break跳出循环
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
a = [[ 1 , 2 , 3 ], [ 5 , 5 , 6 ], [ 7 , 8 , 9 ]]
init_i = 0
init_j = 0
flag = True
for i in range ( 3 ):
for j in range ( 3 ):
# print(i, j)
if a[i][j] = = 5 :
flag = False
init_i = i
init_j = j
break
else :
continue
break
# if not flag:
# break
print (init_i, init_j)
print (i, j)
while True :
for x in range ( 4 ):
print (x)
if x = = 2 :
break
else :
print ( "未执行" )
continue
break
|
python跳出多层循环的方法
今天同事问我一个python面试题,关于python跳出多层循环,原来还真没用过,网上一查还真有点意思,下面记录一下:
Python 本身没有“break n” 和“goto” 的语法,这也造成了Python 难以跳出多层(特定层数)循环。下面是几个跳出多层(特定层数)循环的tip。
1、自定义异常
1
2
3
4
5
6
7
8
9
10
11
|
class getoutofloop(Exception): pass
try :
for i in range ( 5 ):
for j in range ( 5 ):
for k in range ( 5 ):
if i = = j = = k = = 3 :
raise getoutofloop()
else :
print i, '----' , j, '----' , k
except getoutofloop:
pass
|
2、封装为函数return
1
2
3
4
5
6
7
8
9
|
def test():
for i in range ( 5 ):
for j in range ( 5 ):
for k in range ( 5 ):
if i = = j = = k = = 3 :
return
else :
print i, '----' , j, '----' , k
test()
|
3、for ... else ... 用法
上面的两种都是只能跳出多层而不能跳出特定层数的循环,接下来的这个正是为了跳出特定层数的循环。
1
2
3
4
5
6
7
8
9
10
11
|
for i in range ( 5 ):
for j in range ( 5 ):
for k in range ( 5 ):
if i = = j = = k = = 3 :
break
else :
print i, '----' , j, '----' , k
else : continue
break
else : continue
break
|
else在 while和for 正常循环完成之后执行,和直接写在 while和for 之后没有区别,但是如果用break结束循环之后else就不会执行了。这也是个很新奇的做法。
才知道原来可以作为跳出多层循环用。不过要是有多次跳出不同层的循环的需求,也没辙了。
总结
以上所述是小编给大家介绍的python中退出多层循环的方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
原文链接:https://www.cnblogs.com/lybigdata/archive/2018/11/27/10025030.html