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测试驱动开发实例
Oct 08 Python
在Python中调用ggplot的三种方法
Apr 08 Python
python创建和删除目录的方法
Apr 29 Python
Python绘制频率分布直方图的示例
Jul 08 Python
PyTorch中Tensor的维度变换实现
Aug 18 Python
tensorflow 实现自定义layer并添加到计算图中
Feb 04 Python
VScode连接远程服务器上的jupyter notebook的实现
Apr 23 Python
Python Selenium模块安装使用教程详解
Jul 09 Python
python 基于opencv 绘制图像轮廓
Dec 11 Python
K近邻法(KNN)相关知识总结以及如何用python实现
Jan 28 Python
教你怎么用Python生成九宫格照片
May 20 Python
python实现简单石头剪刀布游戏
Oct 24 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
phpBB BBcode处理的漏洞
2006/10/09 PHP
PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例
2015/05/11 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
详细解读php的命名空间(二)
2018/02/21 PHP
jquery 屏蔽一个区域内的所有元素,禁止输入
2009/10/22 Javascript
javascript 带有滚动条的表格,标题固定,带排序功能.
2009/11/13 Javascript
基于jQuery的合并表格中相同文本的相邻单元格的代码
2011/04/06 Javascript
jQuery判断元素是否是隐藏的代码
2011/04/24 Javascript
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML
2012/09/14 Javascript
jquery中交替点击事件toggle方法的使用示例
2013/12/08 Javascript
鼠标滑过出现预览的大图提示效果
2014/02/26 Javascript
js 判断控件获得焦点的示例代码
2014/03/04 Javascript
js设置文本框中焦点位置在最后的示例代码(简单实用)
2014/03/04 Javascript
JavaScript实现删除,移动和复制文件的方法
2015/08/05 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
2017/01/13 Javascript
js实现tab切换效果
2017/02/16 Javascript
vue init webpack 建vue项目报错的解决方法
2018/09/29 Javascript
vue3.0 项目搭建和使用流程
2021/03/04 Vue.js
[50:58]2018DOTA2亚洲邀请赛3月29日 小组赛A组OpTic VS Newbee
2018/03/30 DOTA
解决windows下Sublime Text 2 运行 PyQt 不显示的方法分享
2014/06/18 Python
python统计日志ip访问数的方法
2015/07/06 Python
Python设计模式之抽象工厂模式
2016/08/25 Python
python爬取亚马逊书籍信息代码分享
2017/12/09 Python
opencv python 2D直方图的示例代码
2018/07/20 Python
python字典排序的方法
2019/10/12 Python
用Python生成HTML表格的方法示例
2020/03/06 Python
关于Python解包知识点总结
2020/05/05 Python
html5 localStorage本地存储_动力节点Java学院整理
2017/07/06 HTML / CSS
Ticketmaster德国票务网站:购买音乐会和体育等门票
2016/11/14 全球购物
大学生自荐信
2013/12/11 职场文书
小学少先队活动方案
2014/02/18 职场文书
热爱祖国演讲稿
2014/05/04 职场文书
岳庙导游词
2015/02/04 职场文书
家长意见和建议怎么写
2015/06/04 职场文书
网络舆情信息简报
2015/07/21 职场文书
8g内存用python读取10文件_面试题-python 如何读取一个大于 10G 的txt文件?
2021/05/28 Python