zoukankan      html  css  js  c++  java
  • python中退出多层循环的方法

    1、定义标记变量;利用变量值的变化退出循环

     1 # 第一种嵌套形式
     2 a = [[1, 2, 3], [5, 5, 6], [7, 8, 9]]
     3 # init_i = 0
     4 # init_j = 0
     5 flag = True
     6 for i in range(3):
     7   for j in range(3):
     8     # print(i, j)
     9     if a[i][j] == 5:
    10       flag = False
    11       init_i = i
    12       init_j = j
    13       break
    14   if not flag:
    15     break
    16 print(init_i, init_j)
    17 print(i, j)
    18  
    19 # 第二种嵌套形式
    20 flag = True
    21 while flag:
    22   for i in range(10):
    23     print(x)
    24     flag = False
    25     break

     2、使用函数配合return关键字 实现跳出循环(在函数内部只要执行完return语句 则直接退出函数)

    1 def test():
    2   while True:
    3     for x in range(10):
    4       print(x)
    5       return
    6 test()

     3、利用else continue 和外层的break跳出循环

     1 a = [[1, 2, 3], [5, 5, 6], [7, 8, 9]]
     2 init_i = 0
     3 init_j = 0
     4 flag = True
     5 for i in range(3):
     6   for j in range(3):
     7     # print(i, j)
     8     if a[i][j] == 5:
     9       flag = False
    10       init_i = i
    11       init_j = j
    12       break
    13   else:
    14     continue
    15   break
    16   # if not flag:
    17   #   break
    18 print(init_i, init_j)
    19 print(i, j)
    20  
    21 while True:
    22   for x in range(4):
    23     print(x)
    24     if x == 2:
    25       break
    26   else:
    27     print("未执行")
    28     continue
    29   break

    Python 本身没有“break n” 和“goto” 的语法,这也造成了Python 难以跳出多层(特定层数)循环。下面是几个跳出多层(特定层数)循环的tip。

     4、跳出多层

    1 def test1():
    2   for i in range(5):
    3     for j in range(5):
    4       for k in range(5):
    5         if i == j == k == 3:
    6           return
    7         else:
    8           print(i, '----', j, '----', k)
    9 test1()

     5、for ... else ... 用法(跳出特定层数的循环)

     1 for i in range(5):
     2   for j in range(5):
     3     for k in range(5):
     4       if i == j == k == 3:
     5         break
     6       else:
     7         print( i, '----', j, '----', k)
     8     else: continue
     9     break
    10   else: continue
    11   break
  • 相关阅读:
    js解码
    node.js关于传送数据的二三事
    node下新建工程
    mysql配置
    mongodb配置及简单示例
    vue使用watch 观察路由变化,重新获取内容
    vue 封装方法
    ES6,import时如何正确使用花括号'{ }'
    css字体图标的制作
    vue实现淘宝商品详情页属性选择功能
  • 原文地址:https://www.cnblogs.com/z3286586/p/12533248.html
Copyright © 2011-2022 走看看