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 26 Python
Centos5.x下升级python到python2.7版本教程
Feb 14 Python
Python中的命令行参数解析工具之docopt详解
Mar 27 Python
Python实现的计数排序算法示例
Nov 29 Python
python监控进程脚本
Apr 12 Python
python实现定时提取实时日志程序
Jun 22 Python
Python实现曲线拟合操作示例【基于numpy,scipy,matplotlib库】
Jul 12 Python
对python 生成拼接xml报文的示例详解
Dec 28 Python
PyQt5通信机制 信号与槽详解
Aug 07 Python
python 如何将数据写入本地txt文本文件的实现方法
Sep 11 Python
python3.7 openpyxl 在excel单元格中写入数据实例
Sep 01 Python
python多线程爬取西刺代理的示例代码
Jan 30 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中通过语义URL防止网站被攻击的方法分享
2011/09/08 PHP
php中日期加减法运算实现代码
2011/12/08 PHP
php获取mysql字段名称和其它信息的例子
2014/04/14 PHP
php使用for语句输出三角形的方法
2015/06/09 PHP
PHP使用函数用法详解
2018/09/30 PHP
PHP实现数组和对象的相互转换操作示例
2019/03/20 PHP
js返回上一页并刷新代码整理
2012/12/21 Javascript
jQuery中bind与live的用法及区别小结
2014/01/27 Javascript
jquery 中的each()跳出循环的语句
2014/05/23 Javascript
jQuery鼠标事件汇总
2015/08/30 Javascript
微信小程序 wx.uploadFile无法上传解决办法
2016/12/14 Javascript
基于jQuery实现的单行公告活动轮播效果
2017/08/23 jQuery
浅谈Webpack 是如何加载模块的
2018/05/24 Javascript
详解如何在nuxt中添加proxyTable代理
2018/08/10 Javascript
vue使用Proxy实现双向绑定的方法示例
2019/03/20 Javascript
[06:45]DOTA2-DPC中国联赛 正赛 Magma vs LBZS 选手采访
2021/03/11 DOTA
Python3中使用PyMongo的方法详解
2017/07/28 Python
Django实现学员管理系统
2019/02/26 Python
Python嵌套式数据结构实例浅析
2019/03/05 Python
使用python采集Excel表中某一格数据
2020/05/14 Python
解决pytorch 模型复制的一些问题
2021/03/03 Python
CSS3中动画属性transform、transition和animation属性的区别
2016/09/25 HTML / CSS
利用CSS3的特性改变文本选中时的颜色
2013/09/11 HTML / CSS
全球第二大家装零售商:Lowe’s
2018/01/13 全球购物
澳大利高级泳装品牌:Bondi Born
2018/05/23 全球购物
莱德杯高尔夫欧洲官方商店:Ryder Cup Shop
2019/08/14 全球购物
德国二手设计师时装和复古时装跳蚤市场:Mädchenflohmarkt
2020/11/09 全球购物
应用服务器有那些
2012/01/19 面试题
什么是数据抽象
2016/11/26 面试题
初中校园广播稿
2014/02/02 职场文书
2014政府领导班子对照检查材料思想汇报(3篇)
2014/09/26 职场文书
违规违纪检讨书范文
2015/05/06 职场文书
致三级跳运动员加油稿
2015/07/21 职场文书
React 并发功能体验(前端的并发模式)
2021/07/01 Javascript
SQL Server数据库查询出现阻塞之性能调优
2022/04/10 SQL Server
mysql中如何用命令创建联合唯一索引
2022/04/20 MySQL