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

相关文章
相关标签/搜索