zoukankan      html  css  js  c++  java
  • 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就不会执行了。这也是个很新奇的做法。

    才知道原来可以作为跳出多层循环用。不过要是有多次跳出不同层的循环的需求,也没辙了。

  • 相关阅读:
    79. Word Search
    97. Interleaving String
    74. Search a 2D Matrix
    73. Set Matrix Zeroes
    72. Edit Distance
    71. Simplify Path
    64. Minimum Path Sum
    shell编程 备份mysql数据库并发送到另一个服务器
    linux 命令执行的判断依据: ;,&&,||
    linux 数据流重定向
  • 原文地址:https://www.cnblogs.com/xiaojiayu/p/5195316.html
Copyright © 2011-2022 走看看