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 |
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 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