1、定义标记变量;利用变量值的变化退出循环
1 #第一种嵌套形式
2 a = [[1, 2, 3], [5, 5, 6], [7, 8, 9]]3 #init_i = 0
4 #init_j = 0
5 flag =True6 for i in range(3):7 for j in range(3):8 #print(i, j)
9 if a[i][j] == 5:10 flag =False11 init_i =i12 init_j =j13 break
14 if notflag:15 break
16 print(init_i, init_j)17 print(i, j)18
19 #第二种嵌套形式
20 flag =True21 whileflag:22 for i in range(10):23 print(x)24 flag =False25 break
2、使用函数配合return关键字 实现跳出循环(在函数内部只要执行完return语句 则直接退出函数)
1 deftest():2 whileTrue:3 for x in range(10):4 print(x)5 return
6 test()
3、利用else continue 和外层的break跳出循环
1 a = [[1, 2, 3], [5, 5, 6], [7, 8, 9]]2 init_i =03 init_j =04 flag =True5 for i in range(3):6 for j in range(3):7 #print(i, j)
8 if a[i][j] == 5:9 flag =False10 init_i =i11 init_j =j12 break
13 else:14 continue
15 break
16 #if not flag:
17 #break
18 print(init_i, init_j)19 print(i, j)20
21 whileTrue:22 for x in range(4):23 print(x)24 if x == 2:25 break
26 else:27 print("未执行")28 continue
29 break
Python 本身没有“break n” 和“goto” 的语法,这也造成了Python 难以跳出多层(特定层数)循环。下面是几个跳出多层(特定层数)循环的tip。
4、跳出多层
1 deftest1():2 for i in range(5):3 for j in range(5):4 for k in range(5):5 if i == j == k == 3:6 return
7 else:8 print(i, '----', j, '----', k)9 test1()
5、for ... else ... 用法(跳出特定层数的循环)
1 for i in range(5):2 for j in range(5):3 for k in range(5):4 if i == j == k == 3:5 break
6 else:7 print( i, '----', j, '----', k)8 else: continue
9 break
10 else: continue
11 break