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抓取淘宝下拉框关键词的方法
Jul 08 Python
Python随机数random模块使用指南
Sep 09 Python
一行代码让 Python 的运行速度提高100倍
Oct 08 Python
Python3实现从排序数组中删除重复项算法分析
Apr 03 Python
pycharm创建一个python包方法图解
Apr 10 Python
python 列表中[ ]中冒号‘:’的作用
Apr 30 Python
解决python中使用PYQT时中文乱码问题
Jun 17 Python
Python 多个图同时在不同窗口显示的实现方法
Jul 07 Python
Django用户认证系统 组与权限解析
Aug 02 Python
django ManyToManyField多对多关系的实例详解
Aug 09 Python
Python迭代器iterator生成器generator使用解析
Oct 24 Python
正确的理解和使用Django信号(Signals)
Apr 14 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 MVC
2014/09/10 PHP
smarty内置函数{loteral}、{ldelim}和{rdelim}用法实例
2015/01/22 PHP
php自定义函数br2nl实现将html中br换行符转换为文本输入中换行符的方法【与函数nl2br功能相反】
2017/02/17 PHP
THINKPHP在添加数据的时候获取主键id的值方法
2017/04/03 PHP
php基于环形链表解决约瑟夫环问题示例
2017/11/07 PHP
Opacity.js
2007/01/22 Javascript
用Javascript数组处理多个字符串的连接问题
2009/08/20 Javascript
整理一些JavaScript的IE和火狐的兼容性注意事项
2011/03/17 Javascript
JavaScript 一道字符串分解的题目
2011/08/03 Javascript
js history对象简单实现返回和前进
2013/10/30 Javascript
SuperSlide标签切换、焦点图多种组合插件
2015/03/14 Javascript
JavaScript和HTML DOM的区别与联系及Javascript和DOM的关系
2015/11/15 Javascript
jQuery Easyui使用(二)之可折叠面板动态加载无效果的解决方法
2016/08/17 Javascript
从零开始做一个pagination分页组件
2017/03/15 Javascript
Vue resource中的GET与POST请求的实例代码
2017/07/21 Javascript
jQuery实现的鼠标响应缓冲动画效果示例
2018/02/13 jQuery
vue中使用微信公众号js-sdk踩坑记录
2019/03/29 Javascript
[56:57]LGD vs VP 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第一场 8.20.mp4
2019/08/22 DOTA
[39:19]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第二场 11.26
2020/11/30 DOTA
python开发中module模块用法实例分析
2015/11/12 Python
Django实现跨域请求过程详解
2019/07/25 Python
使用python 的matplotlib 画轨道实例
2020/01/19 Python
Pandas将列表(List)转换为数据框(Dataframe)
2020/04/24 Python
Django Channel实时推送与聊天的示例代码
2020/04/30 Python
解决tensorflow/keras时出现数组维度不匹配问题
2020/06/29 Python
利用三角函数在canvas上画虚线的方法
2018/01/11 HTML / CSS
英国综合网上购物商城:The Hut
2018/07/03 全球购物
老师自我鉴定范文
2013/12/25 职场文书
公司募捐倡议书
2014/05/14 职场文书
工地质量标语
2014/06/12 职场文书
化工专业自荐书
2014/06/16 职场文书
小学生五年级大队长竞选发言稿
2014/09/12 职场文书
项目转让协议书
2014/10/27 职场文书
关于法制教育的宣传语
2015/07/13 职场文书
2016年寒假社会实践活动心得体会
2015/10/09 职场文书
解决MySQL存储时间出现不一致的问题
2021/04/28 MySQL