python跳出多重循环
# -*- 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跳出多重循环的更多相关文章
- Python 跳出多重循环
Python 本身没有“break n” 和“goto” 的语法,这也造成了Python 难以跳出多层(特定层数)循环.下面是几个跳出多层(特定层数)循环的tip. 1.自定义异常 class g ...
- python跳出多重循环的方法
方法1:自定义异常 # -*- coding:utf-8 -*- """ 功能:python跳出循环 """ # 方法1:自定义异常 cla ...
- Python 如何跳出多重循环
Python 如何跳出多重循环 抛异常 return
- python退出多重循环
假设一段python程序有多重循环,我们都知道在一个循环当中,用break是退出当前的循环,然后继续下一次循环,但是如何才能跳出多重循环呢,实际就是结束所有的循环. 思路1::可以定义一个异常类,在需 ...
- Python中断多重循环的几种思路exit_flag
常见方法 II. 跳出多重循环 事实上,Python的标准语法是不支持跳出多重循环的,所以只能利用一些技巧,大概的思路有:写成函数.利用笛卡尔积.利用调试. 写成函数 在Python中,函数运行到re ...
- Python中断多重循环的几种思路
I. 跳出单循环 不管是什么编程语言,都有可能会有跳出循环的需求,比如枚举时,找到一个满足条件的数就终止.跳出单循环是很简单的,比如 for i in range(10): if i > 5: ...
- Java之跳出多重循环
在java里,想要跳出多重循环,有两种方法 1.在循环语句前设置一个标记,然后使用带有该标记的break语句跳出该循环 public static void main(String args[]) { ...
- 关于Java 中跳出多重循环
前言 环境:window10 JDK 1.8 应用场景:在多个for循环或while循环中,直接跳到最外层的循环外面,而不是需要层层退出来. 使用: 使用一个标签label(也可以是其他单词,不能是关 ...
- JS 跳出多重循环
今天学到了如何跳出多重循环
随机推荐
- 企业搜索引擎开发之连接器connector(二十七)
ChangeQueue类实现ChangeSource接口,声明了拉取下一条Change对象的方法 * A source of {@link Change} objects. * * @since 2. ...
- ASP.NET Core2基于RabbitMQ对Web前端实现推送功能
在我们很多的Web应用中会遇到需要从后端将指定的数据或消息实时推送到前端,通常的做法是前端写个脚本定时到后端获取,或者借助WebSocket技术实现前后端实时通讯.因定时刷新的方法弊端很多(已不再采用 ...
- 国际时区 TimeZone ID列表
public static void main(String[] args) { Calendar c = new GregorianCalendar(); c.setTime(new Date()) ...
- python signal
在了解了Linux的信号基础之 后,Python标准库中的signal包就很容易学习和理解.signal包负责在Python程序内部处理信号,典型的操作包括预设信号处理函数,暂 停并等待信号,以及定时 ...
- TFS文件编码检查机制和修改(Team Foundation Server 2013)
TFS的版本控制系统会自动按照下面的标准检测代码文件的编码格式: 1. 首先,如果代码文件包含了BOM部分,则使用BOM中制定的编码格式打开文档 什么是BOM (Byte order mark)? h ...
- 如何创建一个自己的.NET Core Global Tools
索引 NET Core应用框架之BitAdminCore框架应用篇系列 框架演示:https://www.bitadmincore.com 框架源码:https://github.com/chenyi ...
- 数据库工具SQLite Expert Personal的简单使用
官方网站: sqliteexpert官方网址 - SQLite administration | SQLite Expert 先使用SQLite Expert Personal熟悉SQLite语句 插 ...
- My Site Cleanup Job
解决办法: The My Site of Linda Wang ??? is scheduled for deletion in 3 days. As their manager you are no ...
- Regular进阶: 几点性能优化的建议
本文由作者郑海波授权网易云社区发布. 本文旨在用 20% 的精力解决使用Regular过程中 80% 的性能问题. 这里大部分是关于脏检查的性能优化,不了解的可以先看下<Regular脏检查介绍 ...
- 如何获取token值
登录的时候需要拿到token值,需要跟后端配合才能拿到 官方说明: https://developers.weixin.qq.com/miniprogram/dev/api/api-login.htm ...