Python 跳出多重循環

Python 自己沒有「break n」 和「goto」 的語法,這也形成了Python 難以跳出多層(特定層數)循環。下面是幾個跳出多層(特定層數)循環的tip。python

一、自定義異常

 
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

二、封裝爲函數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()

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

才知道原來能夠做爲跳出多層循環用。不過要是有屢次跳出不一樣層的循環的需求,也沒轍了。spa

相關文章
相關標籤/搜索