网络编程
位置:首页>> 网络编程>> Python编程>> python中退出多层循环的方法

python中退出多层循环的方法

作者:你说的都好  发布时间:2021-09-09 11:09:46 

标签:python,退出,多层循环

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


# 第一种嵌套形式
a = [[1, 2, 3], [5, 5, 6], [7, 8, 9]]
# init_i = 0
# init_j = 0
flag = True
for i in range(3):
 for j in range(3):
   # print(i, j)
   if a[i][j] == 5:
     flag = False
     init_i = i
     init_j = j
     break
 if not flag:
   break
print(init_i, init_j)
print(i, j)

# 第二种嵌套形式
flag = True
while flag:
 for i in range(10):
   print(x)
   flag = False
   break

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


def test():
 while True:
   for x in range(10):
     print(x)
     return
test()

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


a = [[1, 2, 3], [5, 5, 6], [7, 8, 9]]
init_i = 0
init_j = 0
flag = True
for i in range(3):
 for j in range(3):
   # print(i, j)
   if a[i][j] == 5:
     flag = False
     init_i = i
     init_j = j
     break
 else:
   continue
 break
 # if not flag:
 #   break
print(init_i, init_j)
print(i, j)

while True:
 for x in range(4):
   print(x)
   if x == 2:
     break
 else:
   print("未执行")
   continue
 break

python跳出多层循环的方法

今天同事问我一个python面试题,关于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就不会执行了。这也是个很新奇的做法。

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

总结

以上所述是小编给大家介绍的python中退出多层循环的方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

来源:https://www.cnblogs.com/lybigdata/archive/2018/11/27/10025030.html

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com