python中退出多层循环的方法

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

 

posted @ 2020-03-20 17:43  K_Code  阅读(2583)  评论(0编辑  收藏  举报