Python 跳出多重循環


Python 本身沒有“break n” 和“goto” 的語法,這也造成了Python 難以跳出多層(特定層數)循環。下面是幾個跳出多層(特定層數)循環的tip。

1、自定義異常

 
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

 
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 ... 用法

上面的兩種都是只能跳出多層而不能跳出特定層數的循環,接下來的這個正是為了跳出特定層數的循環。

 
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就不會執行了。這也是個很新奇的做法。

才知道原來可以作為跳出多層循環用。不過要是有多次跳出不同層的循環的需求,也沒轍了。


免責聲明!

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



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