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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM