python退出多重循环
假设一段python程序有多重循环,我们都知道在一个循环当中,用break是退出当前的循环,然后继续下一次循环,但是如何才能跳出多重循环呢,实际就是结束所有的循环。
思路1::可以定义一个异常类,在需要退出循环的位置,跑出这个异常,就可以了,因为程序在遇到异常的时候,如果没有捕获异常的话,就是直接退出程序的执行,利用这个原理,认为的触发一个异常,然后把这个异常捕获到,就可以实现退出多重循环,而且不结束程序,继续往下执行
#encoding=utf-8
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
print "done"
结果:可以看到在循环到特定条件时,直接抛出异常,然后进行捕获,使程序跳出循环后并不结束,而是接着捕获异常的位置后面继续执行。
D:\>python test.py
0 --- 0 --- 0
0 --- 0 --- 1
0 --- 0 --- 2
0 --- 0 --- 3
0 --- 0 --- 4
0 --- 1 --- 0
0 --- 1 --- 1
0 --- 1 --- 2
0 --- 1 --- 3
0 --- 1 --- 4
0 --- 2 --- 0
0 --- 2 --- 1
0 --- 2 --- 2
0 --- 2 --- 3
0 --- 2 --- 4
0 --- 3 --- 0
0 --- 3 --- 1
0 --- 3 --- 2
0 --- 3 --- 3
0 --- 3 --- 4
0 --- 4 --- 0
0 --- 4 --- 1
0 --- 4 --- 2
0 --- 4 --- 3
0 --- 4 --- 4
1 --- 0 --- 0
1 --- 0 --- 1
1 --- 0 --- 2
1 --- 0 --- 3
1 --- 0 --- 4
1 --- 1 --- 0
1 --- 1 --- 1
1 --- 1 --- 2
1 --- 1 --- 3
1 --- 1 --- 4
1 --- 2 --- 0
1 --- 2 --- 1
1 --- 2 --- 2
1 --- 2 --- 3
1 --- 2 --- 4
1 --- 3 --- 0
1 --- 3 --- 1
1 --- 3 --- 2
1 --- 3 --- 3
1 --- 3 --- 4
1 --- 4 --- 0
1 --- 4 --- 1
1 --- 4 --- 2
1 --- 4 --- 3
1 --- 4 --- 4
2 --- 0 --- 0
2 --- 0 --- 1
2 --- 0 --- 2
2 --- 0 --- 3
2 --- 0 --- 4
2 --- 1 --- 0
2 --- 1 --- 1
2 --- 1 --- 2
2 --- 1 --- 3
2 --- 1 --- 4
2 --- 2 --- 0
2 --- 2 --- 1
2 --- 2 --- 2
2 --- 2 --- 3
2 --- 2 --- 4
2 --- 3 --- 0
2 --- 3 --- 1
2 --- 3 --- 2
2 --- 3 --- 3
2 --- 3 --- 4
2 --- 4 --- 0
2 --- 4 --- 1
2 --- 4 --- 2
2 --- 4 --- 3
2 --- 4 --- 4
3 --- 0 --- 0
3 --- 0 --- 1
3 --- 0 --- 2
3 --- 0 --- 3
3 --- 0 --- 4
3 --- 1 --- 0
3 --- 1 --- 1
3 --- 1 --- 2
3 --- 1 --- 3
3 --- 1 --- 4
3 --- 2 --- 0
3 --- 2 --- 1
3 --- 2 --- 2
3 --- 2 --- 3
3 --- 2 --- 4
3 --- 3 --- 0
3 --- 3 --- 1
3 --- 3 --- 2
done
思路2:在多重循环中用return,直接进行返回,程序遇到return就会认为程序执行结束,进而退出多个循环,这种情况,执行return后,程序不会继续往下执行,而是直接结束程序
#encoding=utf-8
#函数中,用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()
结果:
D:\>python test.py
0 --- 0 --- 0
0 --- 0 --- 1
0 --- 0 --- 2
0 --- 0 --- 3
0 --- 0 --- 4
0 --- 1 --- 0
0 --- 1 --- 1
0 --- 1 --- 2
0 --- 1 --- 3
0 --- 1 --- 4
0 --- 2 --- 0
0 --- 2 --- 1
0 --- 2 --- 2
0 --- 2 --- 3
0 --- 2 --- 4
0 --- 3 --- 0
0 --- 3 --- 1
0 --- 3 --- 2
0 --- 3 --- 3
0 --- 3 --- 4
0 --- 4 --- 0
0 --- 4 --- 1
0 --- 4 --- 2
0 --- 4 --- 3
0 --- 4 --- 4
1 --- 0 --- 0
1 --- 0 --- 1
1 --- 0 --- 2
1 --- 0 --- 3
1 --- 0 --- 4
1 --- 1 --- 0
1 --- 1 --- 1
1 --- 1 --- 2
1 --- 1 --- 3
1 --- 1 --- 4
1 --- 2 --- 0
1 --- 2 --- 1
1 --- 2 --- 2
1 --- 2 --- 3
1 --- 2 --- 4
1 --- 3 --- 0
1 --- 3 --- 1
1 --- 3 --- 2
1 --- 3 --- 3
1 --- 3 --- 4
1 --- 4 --- 0
1 --- 4 --- 1
1 --- 4 --- 2
1 --- 4 --- 3
1 --- 4 --- 4
2 --- 0 --- 0
2 --- 0 --- 1
2 --- 0 --- 2
2 --- 0 --- 3
2 --- 0 --- 4
2 --- 1 --- 0
2 --- 1 --- 1
2 --- 1 --- 2
2 --- 1 --- 3
2 --- 1 --- 4
2 --- 2 --- 0
2 --- 2 --- 1
2 --- 2 --- 2
2 --- 2 --- 3
2 --- 2 --- 4
2 --- 3 --- 0
2 --- 3 --- 1
2 --- 3 --- 2
2 --- 3 --- 3
2 --- 3 --- 4
2 --- 4 --- 0
2 --- 4 --- 1
2 --- 4 --- 2
2 --- 4 --- 3
2 --- 4 --- 4
3 --- 0 --- 0
3 --- 0 --- 1
3 --- 0 --- 2
3 --- 0 --- 3
3 --- 0 --- 4
3 --- 1 --- 0
3 --- 1 --- 1
3 --- 1 --- 2
3 --- 1 --- 3
3 --- 1 --- 4
3 --- 2 --- 0
3 --- 2 --- 1
3 --- 2 --- 2
3 --- 2 --- 3
3 --- 2 --- 4
3 --- 3 --- 0
3 --- 3 --- 1
3 --- 3 --- 2
python退出多重循环的更多相关文章
- Python中断多重循环的几种思路exit_flag
常见方法 II. 跳出多重循环 事实上,Python的标准语法是不支持跳出多重循环的,所以只能利用一些技巧,大概的思路有:写成函数.利用笛卡尔积.利用调试. 写成函数 在Python中,函数运行到re ...
- Python中断多重循环的几种思路
I. 跳出单循环 不管是什么编程语言,都有可能会有跳出循环的需求,比如枚举时,找到一个满足条件的数就终止.跳出单循环是很简单的,比如 for i in range(10): if i > 5: ...
- Javascript中快速退出多重循环的技巧
在双重循环或多重循环中判断条件,条件符合时跳出整个嵌套循环体是常见的程序逻辑.在Javascript中有哪些跳出的方法呢?楼主简单整理了一下. 一. 使用多个break语句跳出 var breaked ...
- python跳出多重循环
# -*- coding=utf-8 -*- """ 如何结束多重循环,在单层循环中,可以用break跳出循环,那两层,三层呢? """ # ...
- Python 跳出多重循环
Python 本身没有“break n” 和“goto” 的语法,这也造成了Python 难以跳出多层(特定层数)循环.下面是几个跳出多层(特定层数)循环的tip. 1.自定义异常 class g ...
- python跳出多重循环的方法
方法1:自定义异常 # -*- coding:utf-8 -*- """ 功能:python跳出循环 """ # 方法1:自定义异常 cla ...
- python中列表删除和多重循环退出
在学习python的时候,会有一些梗非常不适应,在此列举列表删除和多重循环退出的例子: 列表删除里面的坑 比如我们有一个列表里面有很多相同的值,假如:nums=[1,6,6,3,6,2,10,2,10 ...
- Python之 continue继续循环和多重循环
Python之 continue继续循环 在循环过程中,可以用break退出当前循环,还可以用continue跳过后续循环代码,继续下一次循环. 假设我们已经写好了利用for循环计算平均分的代码: L ...
- java 跳出多重循环
public class Main { public static void main(String[] args) { System.out.println("start"); ...
随机推荐
- AD初体验
首先是因为想用51做个小项目,所以想到不如成这个机会把AD学一下吧,老师说我们这个专业无论画图还是电路设计都得精通,想想自己还是能力欠缺,到大三了才开始学习绘制 原理图. 好了废话不说,下面说说我的第 ...
- Rsync数据同步应用指南
1.软件简介 Rsync 是一个本地或远程数据同步工具,基于RSync算法,这个算法是澳大利亚人Andrew Tridgell发明的:可通过 LAN/WAN 快速同步多台主机间的文件.Rsync 本来 ...
- Timer应用之Interval优化
开发中, 有时有这种场景,使用 Timer 的 Timer_Elapsed 间隔 执行(如:从数据库)获取数据 与 现有 应用服务器中的 静态变量数据(起到缓存的目的)做 对比 ,若有改变,则 更新 ...
- CH6101 最优贸易【最短路】
6101 最优贸易 0x60「图论」例题 描述 C国有 n 个大城市和 m 条道路,每条道路连接这 n 个城市中的某两个城市.任意两个城市之间最多只有一条道路直接相连.这 m 条道路中有一部分为单向通 ...
- c++从文件中读取一行数据并保存在数组中
从txt文本中读取数据存入数组中 #include <iostream> #include <fstream> #include <string> #include ...
- 扩展KMP算法小记
参考来自<拓展kmp算法总结>:http://blog.csdn.net/dyx404514/article/details/41831947 扩展KMP解决的问题: 定义母串S和子串T, ...
- Gym - 101028I March Rain 二分
http://codeforces.com/gym/101028/problem/I 题意:给你n个洞,k个布条,问布条能贴到所有洞时的最小值. 题解:二分答案,因为答案越大就越容易满足条件. 技巧: ...
- HTML 标签大全及属性
基本结构标签: <HTML>,表示该文件为HTML文件 <HEAD>,包含文件的标题,使用的脚本,样式定义等 <TITLE>---</TITLE>,包含 ...
- 【Git 使用笔记】第二部分:基本命令 和 单分支开发
git 基本命令 git add . git commit -am "请填写你NB的备注" git fetch --all git fetch -p //如果远程分支删除了,本地 ...
- sum统计某字段满足某种条件的记录数
(1)count来查询: 查询 lw_devices_type_relation 表中满足is_standard为1的数量. (2)sum来查询: ) from lw_devices_type_rel ...