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中使用语句导入模块或包的机制研究
Mar 30 Python
python关闭windows进程的方法
Apr 18 Python
解决Python出现_warn_unsafe_extraction问题的方法
Mar 24 Python
python模块之re正则表达式详解
Feb 03 Python
TensorFlow打印tensor值的实现方法
Jul 27 Python
python字典嵌套字典的情况下找到某个key的value详解
Jul 10 Python
Django框架中序列化和反序列化的例子
Aug 06 Python
Jupyter notebook如何实现指定浏览器打开
May 13 Python
Django中的AutoField字段使用
May 18 Python
如何以Winsows Service方式运行JupyterLab
Aug 30 Python
pytorch finetuning 自己的图片进行训练操作
Jun 05 Python
一篇文章搞懂python混乱的切换操作与优雅的推导式
Aug 23 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 接口类与抽象类的实际作用
2009/11/26 PHP
php中global和$GLOBALS[]的分析之一
2012/02/02 PHP
php实现httpclient类示例
2014/04/08 PHP
PHP设计模式概论【概念、分类、原则等】
2020/05/01 PHP
PHP网页缓存技术优点及代码实例
2020/07/29 PHP
借用Google的Javascript API Loader来加速你的网站
2009/01/28 Javascript
jquery获取input表单值的代码
2010/04/19 Javascript
Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
2013/05/15 Javascript
JS和jquery获取各种屏幕的宽度和高度的代码
2013/08/02 Javascript
移动设备web开发首选框架:zeptojs介绍
2015/01/29 Javascript
JavaScript中用于生成随机数的Math.random()方法
2015/06/15 Javascript
JavaScript位移运算符(无符号) >>> 三个大于号 的使用方法详解
2016/03/31 Javascript
JS实现列表的响应式排版(推荐)
2016/09/01 Javascript
JavaScript实现简单的星星评分效果
2017/05/18 Javascript
JS实现移动端判断上拉和下滑功能
2017/08/07 Javascript
vue生成随机验证码的示例代码
2017/09/29 Javascript
vue实现条件判断动态绑定样式的方法
2018/09/29 Javascript
写gulp遇到的ES6问题详解
2018/12/03 Javascript
[48:21]Mski vs VGJ.S Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
python 判断一个进程是否存在
2009/04/09 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
2017/04/11 Python
Python实现的破解字符串找茬游戏算法示例
2017/09/25 Python
Django contenttypes 框架详解(小结)
2018/08/13 Python
Python简单处理坐标排序问题示例
2019/07/11 Python
python实现录屏功能(亲测好用)
2020/03/02 Python
Django之富文本(获取内容,设置内容方式)
2020/05/21 Python
Python配置pip国内镜像源的实现
2020/08/20 Python
Pycharm 解决自动格式化冲突的设置操作
2021/01/15 Python
html5 touch事件实现页面上下滑动效果【附代码】
2016/03/10 HTML / CSS
Born鞋子官网:Born Shoes
2017/04/06 全球购物
美国酒店控股公司:Choice Hotels
2018/06/15 全球购物
英国门把手公司:Door Handle Company
2019/05/12 全球购物
财经学院自荐信范文
2014/02/02 职场文书
《走一步再走一步》教学反思
2014/02/15 职场文书
2015年村级财务管理制度
2015/08/04 职场文书
zabbix自定义监控nginx状态实现过程
2021/11/01 Servers