# -*- coding=utf-8 -*-

"""
如何结束多重循环,在单层循环中,可以用break跳出循环,那两层,三层呢?
"""
# 用异常:
# 定义一个异常如果value >= 10,触发异常,切记,当循环在函数中时,
# 且函数中循环片段后还有代码时,不能直接return,这样会导致函数整体结束
#正确的方式为:
import datetime
class Gt_10(Exception):
"""docstring for Gt_10"""
def __init__(self, arg):
self.arg = arg def doSomething():
print("will start doSomething")
try:
for i in range(20):
for k in range(20):
for j in range(20):
if j >= 10:
raise Gt_10("值大于10")
else:
print(j)
except Gt_10 as e:
print(e)
print('end doSomething')
print(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
doSomething() # 将循环封装为单独的函数:
def multi_for(*arg,**kwarg):
for i in range(20):
for k in range(20):
for j in range(20):
if j >= 10:
return
else:
print(j)
continue
def doSomething1():
print("will start doSomething")
multi_for()
print('end doSomething')
print(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")) doSomething1() # for--else
# 在python中,else不只和if组合,还可以和while,for组合
def doSomething2():
print("will start doSomething")
for i in range(20):
for k in range(20):
for j in range(20):
if j >= 10:
break
else:
print(j)
continue
else:
continue
break
else:
continue
break
print('end doSomething')
print(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
doSomething2() """
output>>
will start doSomething
0
1
2
3
4
5
6
7
8
9
值大于10
end doSomething
2019-03-25 17:13:09 will start doSomething
0
1
2
3
4
5
6
7
8
9
end doSomething
2019-03-25 17:13:09 will start doSomething
0
1
2
3
4
5
6
7
8
9
end doSomething
2019-03-25 17:13:09
"""

可以看出,三种方法都实现了多重循环的跳出,但是从代码可读性上讲,我更推荐使用第二种,函数封装多循环

python跳出多重循环的更多相关文章

  1. Python 跳出多重循环

    Python 本身没有“break n” 和“goto” 的语法,这也造成了Python 难以跳出多层(特定层数)循环.下面是几个跳出多层(特定层数)循环的tip. 1.自定义异常   class g ...

  2. python跳出多重循环的方法

    方法1:自定义异常 # -*- coding:utf-8 -*- """ 功能:python跳出循环 """ # 方法1:自定义异常 cla ...

  3. Python 如何跳出多重循环

    Python 如何跳出多重循环 抛异常 return

  4. python退出多重循环

    假设一段python程序有多重循环,我们都知道在一个循环当中,用break是退出当前的循环,然后继续下一次循环,但是如何才能跳出多重循环呢,实际就是结束所有的循环. 思路1::可以定义一个异常类,在需 ...

  5. Python中断多重循环的几种思路exit_flag

    常见方法 II. 跳出多重循环 事实上,Python的标准语法是不支持跳出多重循环的,所以只能利用一些技巧,大概的思路有:写成函数.利用笛卡尔积.利用调试. 写成函数 在Python中,函数运行到re ...

  6. Python中断多重循环的几种思路

    I. 跳出单循环 不管是什么编程语言,都有可能会有跳出循环的需求,比如枚举时,找到一个满足条件的数就终止.跳出单循环是很简单的,比如 for i in range(10): if i > 5: ...

  7. Java之跳出多重循环

    在java里,想要跳出多重循环,有两种方法 1.在循环语句前设置一个标记,然后使用带有该标记的break语句跳出该循环 public static void main(String args[]) { ...

  8. 关于Java 中跳出多重循环

    前言 环境:window10 JDK 1.8 应用场景:在多个for循环或while循环中,直接跳到最外层的循环外面,而不是需要层层退出来. 使用: 使用一个标签label(也可以是其他单词,不能是关 ...

  9. JS 跳出多重循环

    今天学到了如何跳出多重循环

随机推荐

  1. java程序练习

    数组求和作业 开发环境:java 工具:eclipse 两种数据类型excel和csv 在同学建议下,我选择用csv文件打开,这就引来了第一个问题,在java中如何调用csv文件.以下是我百度的结果 ...

  2. MVC v5.1 Preview 包含 web api 2.1 web pages 3.1

    Includes ASP.NET MVC 5.1, Web API 2.1, and Web Pages 3.1 preview release. This was released marked a ...

  3. [Erlang33]使用recon从网页查看Erlang运行状态

    0.需求分析 Erlang最好的卖点之一就是提供了一个非常强大的shell来查看Node运行时的各种状态,可以进行各种各样的内部查看,在运行时调试和分析,热更新代码.   但是总有一些在生产环境下要慎 ...

  4. centos 安装vmware 9.02 报 Failed to load module "pk-gtk-module" "canberra-gtk-module"

    http://www.linuxidc.com/Linux/2012-01/50944.htm 系统平台:RHEL6.1 X86 32bit 软件版本:VMware-Workstation-Full- ...

  5. myeclipse过期以后提示过期以后怎么办?!

    昨天电脑上装的myeclipse到期了,不能进到工作空间里边,只有激活和退出选项,在网上百度了一下,有很多破解工具, 1.刚开始直接使用工具破解,没有成功,总是提示要么激活,要么退出 2.继续想办法, ...

  6. vue + echarts画圈圈

    <div class="chart-bar-left" id= "chartbar-left" style="margin-top:1%;&qu ...

  7. [uwp]数据绑定再学习

    在开始上代码前,先来假设这样一种情形: 出于某些原因,创建一个自定义控件(UserControl),然后为它定义一个依赖属性,这个属性有两个作用,一是调用控件方通过数据绑定技术为它赋值,二是控件内部的 ...

  8. Mybatis 动态Sql语句《常用》

    MyBatis 的强大特性之一便是它的动态 SQL.如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么痛苦.拼接的时候要确保不能忘了必要的空格,还要注意省掉 ...

  9. Spring Boot启动过程(六):内嵌Tomcat中StandardHost、StandardContext和StandardWrapper的启动

    看代码有助于线上出现预料之外的事的时候,不至于心慌... StandardEngine[Tomcat].StandardHost[localhost]的启动与StandardEngine不在同一个线程 ...

  10. JavaScript求数组Array的并集(javascript面试常见题目)

    var Utils = { joinArray:function(source,target){ for(var i = 0;i<source.length;i++){ var oa = sou ...