python中退出多层循环的方法


Posted in Python onNovember 27, 2018

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中退出多层循环的方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Python 相关文章推荐
python中尾递归用法实例详解
Apr 28 Python
实例讲解Python编程中@property装饰器的用法
Jun 20 Python
Python实现字符串与数组相互转换功能示例
Sep 22 Python
Python探索之ModelForm代码详解
Oct 26 Python
PyQt5每天必学之像素图控件QPixmap
Apr 19 Python
Tesserocr库的正确安装方式
Oct 19 Python
python获取时间及时间格式转换问题实例代码详解
Dec 06 Python
python已协程方式处理任务实现过程
Dec 27 Python
pytorch 利用lstm做mnist手写数字识别分类的实例
Jan 10 Python
Pytorch自己加载单通道图片用作数据集训练的实例
Jan 18 Python
浅谈matplotlib 绘制梯度下降求解过程
Jul 12 Python
Scrapy实现模拟登录的示例代码
Feb 21 Python
为什么Python中没有"a++"这种写法
Nov 27 #Python
django session完成状态保持的方法
Nov 27 #Python
Python3实现腾讯云OCR识别
Nov 27 #Python
python利用百度AI实现文字识别功能
Nov 27 #Python
python如何实现一个刷网页小程序
Nov 27 #Python
python实现简单的文字识别
Nov 27 #Python
python中类的属性和方法介绍
Nov 27 #Python
You might like
PHP中根据IP地址判断城市实现城市切换或跳转代码
2012/09/04 PHP
编写安全 PHP应用程序的七个习惯深入分析
2013/06/08 PHP
php实现转换ubb代码的方法
2015/06/18 PHP
如何解决PHP无法实现多线程的问题
2015/09/25 PHP
PHP CURL采集百度搜寻结果图片不显示问题的解决方法
2017/02/03 PHP
laravel框架之数据库查出来的对象实现转化为数组
2019/10/23 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
javascript 图片上传预览-兼容标准
2009/06/01 Javascript
JavaScript 利用Cookie记录用户登录信息
2009/12/08 Javascript
jquery easyui的tabs使用时的问题
2010/03/23 Javascript
JavaScript之编码规范 推荐
2012/05/23 Javascript
JavaScript 开发工具webstrom使用指南
2014/12/09 Javascript
前端程序员必须知道的高性能Javascript知识
2016/08/24 Javascript
Bootstrap如何创建表单
2016/10/21 Javascript
JS IOS/iPhone的Safari浏览器不兼容Javascript中的Date()问题如何解决
2016/11/11 Javascript
jquery-mobile基础属性与用法详解
2016/11/23 Javascript
js事件on动态绑定数据,绑定多个事件的方法
2018/09/15 Javascript
vue基于element-ui的三级CheckBox复选框功能的实现代码
2018/10/15 Javascript
js实现转动骰子模型
2019/10/24 Javascript
js表达式与运算符简单操作示例
2020/02/15 Javascript
Element Badge标记的使用方法
2020/07/27 Javascript
[02:42]岂曰无衣,与子同袍!DOTA2致敬每一位守护人
2020/02/17 DOTA
python dataframe常见操作方法:实现取行、列、切片、统计特征值
2018/06/09 Python
Python 字符串与数字输出方法
2018/07/16 Python
Python PIL图片添加字体的例子
2019/08/22 Python
pandas DataFrame 数据选取,修改,切片的实现
2020/04/24 Python
canvas学习笔记之绘制简单路径
2019/01/28 HTML / CSS
Too Faced官网:美国知名彩妆品牌
2017/03/07 全球购物
荷兰在线体育用品商店:Avantisport.nl
2018/07/04 全球购物
俄罗斯香水和化妆品在线商店:Aroma-butik
2020/02/28 全球购物
青年志愿者活动方案
2014/08/17 职场文书
离婚上诉状范文
2015/05/23 职场文书
关于开学的感想
2015/08/10 职场文书
新农村建设指导员工作总结
2015/08/13 职场文书
2016年入党心得体会范文
2016/01/23 职场文书
Spring IOC容器Bean的作用域及生命周期实例
2022/05/30 Java/Android