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基于右递归解决八皇后问题的方法
May 25 Python
Python自动扫雷实现方法
Jul 25 Python
Python之Scrapy爬虫框架安装及简单使用详解
Dec 22 Python
python opencv实现切变换 不裁减图片
Jul 26 Python
python爬虫超时的处理的实例
Dec 19 Python
PYQT5设置textEdit自动滚屏的方法
Jun 14 Python
python识别文字(基于tesseract)代码实例
Aug 24 Python
关于Tensorflow使用CPU报错的解决方式
Feb 05 Python
python自动脚本的pyautogui入门学习
Apr 01 Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
Jun 08 Python
python 动态绘制爱心的示例
Sep 27 Python
Python pygame实现中国象棋单机版源码
Jun 20 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
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
2007/03/29 PHP
php数组函数序列之array_sum() - 计算数组元素值之和
2011/10/29 PHP
php二维码生成
2015/10/19 PHP
PHP大神的十大优良习惯
2016/09/14 PHP
php is_writable判断文件是否可写实例代码
2016/10/13 PHP
PHP MYSQL简易交互式站点开发
2016/12/27 PHP
PHP模糊查询技术实例分析【附源码下载】
2019/03/07 PHP
dropdownlist之间的互相联动实现(显示与隐藏)
2009/11/24 Javascript
简单的js表单验证函数
2013/10/28 Javascript
jQuery学习笔记之创建DOM元素
2015/01/19 Javascript
jQuery事件绑定on()、bind()与delegate() 方法详解
2015/06/03 Javascript
讲解JavaScript的Backbone.js框架的MVC结构设计理念
2016/02/14 Javascript
Bootstrap表单布局
2016/07/19 Javascript
数据结构中的各种排序方法小结(JS实现)
2016/07/23 Javascript
利用JavaScript实现拖拽改变元素大小
2016/12/14 Javascript
JS实现的点击表头排序功能示例
2017/03/27 Javascript
微信网页授权并获取用户信息的方法
2018/07/30 Javascript
node全局变量__dirname与__filename的区别
2019/01/14 Javascript
layui 解决form表单点击无反应的问题
2019/10/25 Javascript
windows下create-react-app 升级至3.3.1版本踩坑记
2020/02/17 Javascript
Jquery+AJAX实现无刷新上传并重命名文件操作示例【PHP后台接收】
2020/05/29 jQuery
vue中重定向redirect:‘/index‘,不显示问题、跳转出错的完美解决
2020/09/28 Javascript
Python自动连接ssh的方法
2015/03/07 Python
Python使用dis模块把Python反编译为字节码的用法详解
2016/06/14 Python
Python爬虫之网页图片抓取的方法
2018/07/16 Python
Python面向对象之类的定义与继承用法示例
2019/01/14 Python
django列表筛选功能的实现代码
2020/03/27 Python
Python实现验证码识别
2020/06/15 Python
python反爬虫方法的优缺点分析
2020/11/25 Python
Python实现中英文全文搜索的示例
2020/12/04 Python
优秀大学生推荐信范文
2013/11/28 职场文书
高效课堂标语
2014/06/26 职场文书
汇报材料怎么写
2014/12/30 职场文书
详解JS WebSocket断开原因和心跳机制
2021/05/07 Javascript
简单了解 MySQL 中相关的锁
2021/05/25 MySQL
在Oracle表中进行关键词搜索的过程
2022/06/10 Oracle