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开发编码规范
Sep 08 Python
Python编程语言的35个与众不同之处(语言特征和使用技巧)
Jul 07 Python
使用Python编写vim插件的简单示例
Apr 17 Python
Python用UUID库生成唯一ID的方法示例
Dec 15 Python
Python中logging.NullHandler 的使用教程
Nov 29 Python
python读取txt文件,去掉空格计算每行长度的方法
Dec 20 Python
使用python 打开文件并做匹配处理的实例
Jan 02 Python
Python-ElasticSearch搜索查询的讲解
Feb 25 Python
Python使用selenium + headless chrome获取网页内容的方法示例
Oct 16 Python
Python+OpenCV实现实时眼动追踪的示例代码
Nov 11 Python
python的setattr函数实例用法
Dec 16 Python
python实现手机推送 代码也就10行左右
Apr 12 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
初识laravel5
2015/03/02 PHP
Yii实现文章列表置顶功能示例
2016/10/18 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
2020/02/15 PHP
javascript for循环设法提高性能
2010/02/24 Javascript
动态加载图片路径 保持JavaScript控件的相对独立性
2010/09/06 Javascript
Chrome中JSON.parse的特殊实现
2011/01/12 Javascript
JS限制上传图片大小不使用控件在本地实现
2012/12/19 Javascript
jquery不常用方法汇总
2015/07/26 Javascript
JavaScript引用类型和基本类型详解
2016/01/06 Javascript
多功能jQuery树插件zTree实现权限列表简单实例
2016/07/12 Javascript
详解动画插件wow.js的使用方法
2017/09/13 Javascript
Vue组件开发之LeanCloud带图形校验码的短信发送功能
2017/11/07 Javascript
10 种最常见的 Javascript 错误(频率最高)
2018/02/08 Javascript
[01:02:38]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第二场 1月10日
2021/03/11 DOTA
python 正则式使用心得
2009/05/07 Python
跟老齐学Python之重回函数
2014/10/10 Python
python检查序列seq是否含有aset中项的方法
2015/06/30 Python
Python list列表中删除多个重复元素操作示例
2019/02/27 Python
python二维码操作:对QRCode和MyQR入门详解
2019/06/24 Python
Python简单处理坐标排序问题示例
2019/07/11 Python
python动态视频下载器的实现方法
2019/09/16 Python
python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例
2020/03/01 Python
appium+python自动化配置(adk、jdk、node.js)
2020/11/17 Python
canvas 下载二维码和图片加水印的方法
2018/03/21 HTML / CSS
新闻专业本科生的自我评价分享
2013/11/20 职场文书
幼儿园招生广告
2014/03/19 职场文书
热爱祖国的演讲稿
2014/05/04 职场文书
公司贷款承诺书
2014/05/30 职场文书
勿忘国耻9.18演讲稿(经典篇)
2014/09/14 职场文书
社区灵活就业证明
2014/11/03 职场文书
2014年艾滋病防治工作总结
2014/12/10 职场文书
死亡赔偿协议书
2015/01/28 职场文书
寒假安全保证书
2015/02/28 职场文书
2019年年中工作总结讲话稿模板
2019/03/25 职场文书
Java Dubbo框架知识点梳理
2021/06/26 Java/Android
「偶像大师 MILLION LIVE!」七尾百合子手办开订
2022/03/21 日漫