详解Python如何在多层循环中使用break/continue
作者:Python?集中营 发布时间:2023-01-21 14:50:19
关于break/continue这两个关键字在平常的使用过程中一直比较迷糊。好不容易理解了吧,过段时间不使用好像忘记了什么。这个问题也是很多初学者比较容易提及的问题。
先通过一个简单的单层循环来了解一下这两个关键字的使用。
print('=============单层循环使用=============')
for n in range(10):
if n == 9:
print('退出当前循环,当前n = ', n)
break
elif n == 4:
print('跳过当前循环,当前n = ', n)
continue
print('当前n = ', n)
下面是执行以后的结果展示。
当前n = 0
当前n = 1
当前n = 2
当前n = 3
跳过当前循环,当前n = 4
当前n = 5
当前n = 6
当前n = 7
当前n = 8
退出当前循环,当前n = 9
根据执行完成的结果可以看出,n = 4时,当前的n值没有被打印,但是它还是往下执行了n = 5以后的打印,这就是continue的作用。
而执行到break的关键字时就直接退出for循环了不会往下继续执行。
同样的方式,将单层循环这次变成双层循环看一下效果。
print('=============双层循环使用=============')
for m in range(10):
for n in range(10):
if n == 9:
print('退出当前循环,当前n = ', n)
break
elif n == 4:
print('跳过当前循环,当前n = ', n)
continue
print('当前n = ', n)
if m == 8:
break
下面是执行以后的结果展示。
当前n = 0
当前n = 1
当前n = 2
当前n = 3
跳过当前循环,当前n = 4
当前n = 5
当前n = 6
当前n = 7
当前n = 8
退出当前循环,当前n = 9
当前n = 0
当前n = 1
当前n = 2
当前n = 3
跳过当前循环,当前n = 4
当前n = 5
当前n = 6
当前n = 7
当前n = 8
退出当前循环,当前n = 9
当前n = 0
当前n = 1
当前n = 2
当前n = 3
跳过当前循环,当前n = 4
当前n = 5
当前n = 6
当前n = 7
当前n = 8
退出当前循环,当前n = 9
当前n = 0
当前n = 1
当前n = 2
当前n = 3
跳过当前循环,当前n = 4
当前n = 5
当前n = 6
当前n = 7
当前n = 8
退出当前循环,当前n = 9
当前n = 0
当前n = 1
当前n = 2
当前n = 3
跳过当前循环,当前n = 4
当前n = 5
当前n = 6
当前n = 7
当前n = 8
退出当前循环,当前n = 9
当前n = 0
当前n = 1
当前n = 2
当前n = 3
跳过当前循环,当前n = 4
当前n = 5
当前n = 6
当前n = 7
当前n = 8
退出当前循环,当前n = 9
当前n = 0
当前n = 1
当前n = 2
当前n = 3
跳过当前循环,当前n = 4
当前n = 5
当前n = 6
当前n = 7
当前n = 8
退出当前循环,当前n = 9
当前n = 0
当前n = 1
当前n = 2
当前n = 3
跳过当前循环,当前n = 4
当前n = 5
当前n = 6
当前n = 7
当前n = 8
退出当前循环,当前n = 9
当前n = 0
当前n = 1
当前n = 2
当前n = 3
跳过当前循环,当前n = 4
当前n = 5
当前n = 6
当前n = 7
当前n = 8
退出当前循环,当前n = 9
根据结果,可以观察到内部循环的执行次数是9次,在执行到m = 8 时将循环退出了正好m的值只循环到了0-8正好是9次。
而内部循环的break/continue只对内部循环生效,因此得出了结论break/continue只对它对应的当前循环生效。
那如果是三层循环或者更多的层循环呢,效果也是一样的。
print('=============三层循环使用=============')
for i in range(3):
for j in range(3):
for k in range(3):
if k in [1, 2, 3]:
continue
print('当前k = ', k)
if j in [1, 2, 3]:
continue
print('当前j = ', j)
if i in [2, 3]:
break
print('当前i = ', i)
同样的只需要在其对应的当前循环中加入break/continue的逻辑控制即可。
=============三层循环使用=============
当前k = 0
当前j = 0
当前k = 0
当前k = 0
当前i = 0
当前k = 0
当前j = 0
当前k = 0
当前k = 0
当前i = 1
当前k = 0
当前j = 0
当前k = 0
当前k = 0
执行完结果以后,i 值对应的循环执行了0、1,j/k值对应的循环只执行了0。所以再一次印证了break/continue只对它自己对应的当前循环生效。
来源:https://www.cnblogs.com/lwsbc/p/16298822.html


猜你喜欢
- 本文完全利用numpy实现一个简单的BP神经网络,由于是做regression而不是classification,因此在这里输出层选取的激励
- 使用“发送测试电子邮件”对话框来测试使用特定配置文件发送邮件的能力。过程发送测试电子邮件1.使用对象
- 本文实例讲述了Python格式化css文件的方法。分享给大家供大家参考。具体实现方法如下:import string, sysimport
- python文件可以直接使用命令python xxx.py来启动文件,但是这样会有一个弊端,就是关闭ssh连接,python文件就会自动的进
- MNIST数据集比较小,一般入门机器学习都会采用这个数据集来训练下载地址:yann.lecun.com/exdb/mnist/有4个有用的文
- 博主最近需要做一个物流信息查询,就去网上搜索一个快递鸟的API接口,返回值是以JSON格式,只需要返回是转成数组就能轻松实现各种实例了。下图
- 导言在前面的两篇教程中,我们看到了如何在单一页面中显示主/从报表, 它使用DropDownList显示主记录,使用GridView或Deta
- Python 3中的File对象不支持next()方法。 Python 3有一个内置函数next(),它通过调用其next ()方法从迭代器
- 所需补丁及高版本opatchimage上传后将p6880880_112000_Linux-x86-64.zip解压覆盖$ORACLE_HOM
- 1. 根据字符串名称 动态调用 python文件内的方法eval("function_name")(参数)2. 根据字符
- 图像素描特效图像素描特效主要经过以下几个步骤:调用cv.cvtColor()函数将彩色图像灰度化处理;通过cv.GaussianBlur()
- import urllib2import jsonimport stringurl ='http://m.weather.com.c
- 开始前一阵子,在项目中碰到这样一个SQL查询需求,有两个相同结构的表(table_left & table_right),如下:图1
- 一、算法构造1.简单介绍一下knn算法KNN算法,也叫K最近邻算法。功能是分类。算法逻辑非常简单,说直白点就是:先找到跟你最近的k个邻居(假
- 环境:Ubuntu14.04,tensorflow=1.4(bazel源码安装),Anaconda python=3.6声明变量主要有两种方
- Overview这篇博客内容将包括对XML文件的解析、追加新元素后写入到XML,以及更新原XML文件中某结点的值。使用的是python的xm
- mysql.sock到底存储了什么东西?mysql.sock作为mysql的套接字一般用于本地连接数据库,在速度上优于TCP/IP连接。一般
- scrollHeight: 获取对象的滚动高度。 scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的
- 本文实例为大家分享了python实现人机五子棋的具体代码,供大家参考,具体内容如下图形界面引用PyQt5,还有socket通信。可以局域网对
- 以channel Attention Block为例子class CAB(nn.Module):def __init__(self, in_