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批量导出导入MySQL用户的方法
Nov 15 Python
Python环境下安装使用异步任务队列包Celery的基础教程
May 07 Python
Python with语句上下文管理器两种实现方法分析
Feb 09 Python
基于DataFrame筛选数据与loc的用法详解
May 18 Python
Python OpenCV读取png图像转成jpg图像存储的方法
Oct 28 Python
Python设计模式之状态模式原理与用法详解
Jan 15 Python
python 将对象设置为可迭代的两种实现方法
Jan 21 Python
Python定时发送天气预报邮件代码实例
Sep 09 Python
使用Python项目生成所有依赖包的清单方式
Jul 13 Python
python的launcher用法知识点总结
Aug 07 Python
python使用建议与技巧分享(二)
Aug 17 Python
python如何获取网络数据
Apr 11 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
正则表达式语法
2006/10/09 Javascript
关于时间计算的结总
2006/12/06 PHP
PHP开发微信支付的代码分享
2014/05/25 PHP
比较简单的异步加载JS文件的代码
2009/07/18 Javascript
用jquery方法操作radio使其默认选项是否
2013/09/10 Javascript
JavaScript中通过prototype属性共享属性和方法的技巧实例
2015/03/13 Javascript
js实现点击切换TAB标签实例
2015/08/21 Javascript
Bootstrap每天必学之js插件
2015/11/30 Javascript
Jquery-data的三种用法
2017/04/18 jQuery
基于JavaScript实现类名的添加与移除
2017/04/23 Javascript
javascript算法之二叉搜索树的示例代码
2017/09/12 Javascript
在Vue项目中引入腾讯验证码服务的教程
2018/04/03 Javascript
Node.js一行代码实现静态文件服务器的方法步骤
2019/05/07 Javascript
[05:45]Ti4观战指南(下)
2014/07/07 DOTA
[58:11]守擂赛第二周擂主赛 DeMonsTer vs Leopard
2020/04/28 DOTA
使用Nginx+uWsgi实现Python的Django框架站点动静分离
2016/03/21 Python
Python处理XML格式数据的方法详解
2017/03/21 Python
python3爬虫之设计签名小程序
2018/06/19 Python
python 对txt中每行内容进行批量替换的方法
2018/07/11 Python
Python SELENIUM上传文件或图片实现过程
2019/10/28 Python
使用matlab或python将txt文件转为excel表格
2019/11/01 Python
Python解析多帧dicom数据详解
2020/01/13 Python
python误差棒图errorbar()函数实例解析
2020/02/11 Python
Keras官方中文文档:性能评估Metrices详解
2020/06/15 Python
CSS3属性选择符介绍
2008/10/17 HTML / CSS
详解html5 shiv.js和respond.min.js
2018/01/24 HTML / CSS
Ryderwear澳洲官网:澳大利亚高端健身训练装备品牌
2018/09/18 全球购物
建筑工程毕业生自我鉴定
2014/01/14 职场文书
二年级语文教学反思
2014/02/02 职场文书
大学生新学期计划书
2014/04/28 职场文书
酒店管理求职信
2014/06/09 职场文书
个人融资协议书范本两则
2014/10/15 职场文书
幼儿园教师考核评语
2014/12/31 职场文书
银行培训心得体会范文
2016/01/09 职场文书
详解Spring事件发布与监听机制
2021/06/30 Java/Android
MySQL 1130异常,无法远程登录解决方案详解
2021/08/23 MySQL