1、定义标记变量;利用变量值的变化退出循环
1 # 第一种嵌套形式
2 a = [[1, 2, 3], [5, 5, 6], [7, 8, 9]]
3 # init_i = 0
4 # init_j = 0
5 flag = True
6 for i in range(3):
7 for j in range(3):
8 # print(i, j)
9 if a[i][j] == 5:
10 flag = False
11 init_i = i
12 init_j = j
13 break
14 if not flag:
15 break
16 print(init_i, init_j)
17 print(i, j)
18
19 # 第二种嵌套形式
20 flag = True
21 while flag:
22 for i in range(10):
23 print(x)
24 flag = False
25 break
2、使用函数配合return关键字 实现跳出循环(在函数内部只要执行完return语句 则直接退出函数)
1 def test(): 2 while True: 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 = 0 3 init_j = 0 4 flag = True 5 for i in range(3): 6 for j in range(3): 7 # print(i, j) 8 if a[i][j] == 5: 9 flag = False 10 init_i = i 11 init_j = j 12 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 while True: 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 def test1(): 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