【Python循环4/5】跳出循环的办法

news2024/11/16 5:28:51

目录

导入

break

具体用法

在for循环中的运用

在while循环中的运用

continue

具体用法

区别

总结


导入

        前几天的博文里,我们学习了for循环和while循环。
        无论是for循环还是while循环,默认的终止条件都是边界条件。在触发边界条件之前,代码会一直循环执行。
        那有没有可以改变这种“默认循环执行”的方法呢?答案是肯定的。接下来我们一起学习两个关键字:break、continue。

break

        某些场景里,需要在特定的条件出现时强行终止循环,并执行循环之后的代码。
这时候,就可以使用 break 这个关键字来完成。

        定义break用于跳出当前循环语句的执行。

        隐喻 :原计划在操场跑10圈,但当跑到第2圈的时候,突然被班主任叫走,于是果断停止跑步并前往办公室。

具体用法

在for循环中的运用

        break语句既可以用在for循环中也可以用在while循环中。它一般和if语句搭配在一起使用,表示如果满足了某种特定条件,就直接终止当前的循环结构。
        接下来,我们来学习break的具体用法。

        这六行代码遍历了一个列表numberList,并依次输出其中的元素。第2-5行是一个完整的for循环结构。如果列表中有大于15的元素,就终止循环结构。for循环外,输出了完整的numberList。

numberList = [10, 4, 1, 20, 6]
for i in numberList:
    print(i)
    if i > 15:
        break
print(numberList)

遍历列表

使用for...in...的结构,依次遍历numberList中的元素。

输出元素

        for循环内的代码块,依次输出列表中的元素。按理来说,列表一共有五个元素,print(i)会执行 5 次。但在本例中,print(i)只运行了 4 次,依次输出了列表中10、4、1和20这四个元素。稍后我们会详细解释这里只运行了四次的原因。

if语句

        使用if语句判断变量i是否大于15。如果判断条件成立,就执行下面的缩进代码:break;
如果判断条件不成立,则进入下一次循环。

break

        一个关键字break,执行它时将结束整个循环结构。本例中,在遍历到列表的第四个元素时,由于20大于15,判断条件成立,执行缩进代码break,程序跳出该循环。
        因此,print(i)只执行了四次。

for循环外

        执行break后,程序不会进入下一次循环继续遍历列表的第五个元素,而是从循环外的第一行开始执行:输出列表numberList。

在while循环中的运用

        while循环里break的用法和在for循环中类似。示例中,n的初始值为0,我们使用while循环依次输出小于10的整型。

        当n小于10时,输出n。第4-5行使用if语句判断了n是否等于5。如果n等于5,执行break,跳出整个while循环;如果n不等于5,则将n加一,继续进入下一次while循环。

        因此,运行结果中依次输出了0、1、2、3、4和5。因为当n等于5时,就执行break,跳出整个循环了。

continue

        我们刚刚学习了,即使在边界条件保持为True时,也可以通过使用break来终止整个循环结构。但是,如果只想跳过循环内某些语句,接着返回到循环的开头,继续进入下一次循环,该怎么办?
        这时候,就需要用到另一个关键字:continue 。

        定义continue会“跳过”本次循环内的剩余代码。

        隐喻:原计划在操场跑10圈,但是当跑到第2圈的时候,突然接到一个电话,停止了跑步。等挂断电话后,回到起点直接从第3圈继续跑。

具体用法

        注意,continue是跳过本次循环,而break跳出整个循环结构。接下来,我们来学习continue的具体用法。

        这5行代码遍历了一个列表drinks。第2-5行是一个完整的循环结构。在循环内,通过if语句判断该列表中是否有元素是"coke"。如果有,则跳过本次循环中的剩余代码,也就是第5行的print(item),直接进入到下一次循环。如果没有,就执行print(item),然后进入下一次循环,直到列表drinks中所有元素都被取完为止。

drinks = ["water", "coke", "tea", "milk"]
for item in drinks:
    if item == "coke":
        continue
    print(item)

if语句

        使用if语句判断item是否等于"coke"。如果等于,就执行continue语句;如果不等于,则执行print(item)。

continue

        一个关键字continue,它会跳过本次循环中后面的剩余代码,直接进入下一次循环。本例中,在遍历到列表的第二个元素时,item是"coke",判断条件成立,执行缩进代码continue,程序跳出本次循环,进入下一次循环。
        因此,print(item)没有输出coke。

        while循环里continue的用法和在for循环中类似。示例中,n的初始值为0,我们使用while循环依次输出小于10,但不包含5的整型。

        第4-5行使用if语句判断了n是否等于5。如果n等于5,执行continue,跳过当前的while循环,进入下一次while循环;如果不等于5,则将n输出。

        因此,运行结果中依次输出了1-10里,除了5以外的所有整型。

        有的大佬可能已经发现,continue是可以被if语句替代的,比如刚才的例子就有两种写法。
对比单纯地使用if语句,continue的优势在于它能加快程序的运行时间
        编程的世界是非常灵活的,大家在实际应用中可以根据自己的需要来进行选择。

区别

        在博文的最后,我们再来通过两段代码来感受一下break和continue的区别~当执行break时,会跳出整个循环结构,并运行循环外的第一行代码。

        执行continue时,会“跳过”本次循环内的剩余代码,返回到循环的开头,继续执行下一次循环。

总结

        break直接终止整个循环结构;continue是跳过当前循环中剩下的代码,继续进入下一次循环。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1528092.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ChatGPT4的Dalle-3 生成电影海报及升级教程

引言 首先DALL E3首先需要升级为ChatGPT4才能使用,接下来从以下几个方面进行介绍: 一、ChatGPT4中的DALL E3 的电影海报二、ChatGPT4下的DALL E3的实例三、ChatGPT4的升级教程 一、ChatGPT4中的DALL E3 的电影海报 DALLE 3可以直接在画面中识别和生成…

gPTP简介

1、gPTP(generalized precision time protocol)广义时钟同步协议 gPTP(generalized precision time protocol)广义时钟同步协议,即IEEE 802.1AS协议。它是IEEE 1588协议的延伸,可以为TSN提供全局精准…

重磅!知名三甲医院更新2024预警期刊名单!1区SCI为何上榜?

毕业推荐 SSCI(ABS一星) • 社科类,3.0-4.0,JCR2区,中科院3区 • 13天录用,28天见刊,13天检索 SCIE: • 计算机类,6.5-7.0,JCR1区,中科院2区…

C到C++的敲门砖-2

文章目录 引用内联函数auto关键字基于范围的for循环指针空值nullptr后记 引用 引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空 间,它和它引用的变量共用同一块内存空间。 所谓引用就是给变量起别名&am…

基于消失点的相机自标定

基于消失点的相机自标定 附赠最强自动驾驶学习资料:直达链接 相机是通过透视投影变换来将3D场景转换为2D图像。在射影变换中,平行线相交于一点称之为消失点。本文详细介绍了两种利用消失点特性的标定方法。目的是为根据实际应用和初始条件选择合适的标…

phpStudy安装thinkCMF8时,如何解决服务器rewrite和APIrewrite不支持的问题

解决步骤: 一:服务器rewrite 点击后面的问号跳转到官方文档链接: 复制红框内的代码 打开phpstudy,找到配置的站点,点击管理,找到伪静态 点击确认保存即可。 phpstudy会自动重启站点。 此时,…

CTF 题型 SSRF攻击例题总结

CTF 题型 SSRF攻击&例题总结 文章目录 CTF 题型 SSRF攻击&例题总结Server-side Request Forgery 服务端请求伪造SSRF的利用面1 任意文件读取 前提是知道要读取的文件名2 探测内网资源3 使用gopher协议扩展攻击面Gopher协议 (注意是70端口)python…

RPC学习笔记一

什么是RPC RPC(Remote Procedure Call,远程过程调用)是一种用于实现分布式系统中不同计算机或进程之间进行通信和调用的技术和模式。 在传统的过程调用中,当一个程序需要调用另一个程序的函数或方法时,通常是在同一台…

【10】进阶常用第三方库

第三方库概览 名称文档一句话介绍jQuery官网:https://jquery.com/中文网:https://jquery.cuishifeng.cn/让操作 DOM 变得更容易Lodash官网:https://lodash.com/docs中文网:https://www.lodashjs.com/你能想到的工具函数它都帮你写了Animate.css官网:https://animate.style…

图算法总结

BFS: 基于队列, 入队列的顶点先被探索. DFS: 基于栈, 通过将顶点存入栈中, 顶点是沿着路径被探索的, 存在新的相邻顶点就去访问.深度优先遍历类似于树的先根遍历(先序遍历)

大模型提示学习样本量有玄机,自适应调节方法好

引言:探索文本分类中的个性化示例数量 在自然语言处理(NLP)领域,预测模型已经从零开始训练演变为使用标记数据对预训练模型进行微调。这种微调的极端形式涉及到上下文学习(In-Context Learning, ICL)&…

由浅到深认识Java语言(1):前提概要

该文章Github地址:https://github.com/AntonyCheng/java-notes 在此介绍一下作者开源的SpringBoot项目初始化模板(Github仓库地址:https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址:https://blog.c…

外贸网站常用的wordpress模板

零件配件WordPress外贸建站模板 汽车行业零配件WordPress外贸建站模板,卖配件、零件的外贸公司可以使用的WordPress主题。 https://www.jianzhanpress.com/?p4912 WordPress外贸独立站主题 简洁实用的WordPress外贸独立站主题,适合时尚服装行业搭建w…

哈尔滨华时信息公司的校企合作怎么样

在当今竞争激烈的就业市场中,大学生的技能培养对于他们的未来职业发展至关重要。哈尔滨华时信息技术有限公司与黑龙江农业工程职业学院信息工程院的合作,无疑是一次具有深远意义的举措。这样的校企合作模式不仅符合国家政策导向,更带来了多方…

第四百零九回

文章目录 1. 概念介绍2. 方法与细节2.1 获取方法2.2 使用细节 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何获取当前系统语言"相关的内容,本章回中将介绍如何获取时间戳.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章…

java新手练习-类的继承调用(接口,抽象类,构造函数)和枚举定义方法

1.继承 父类可以调用子类实例对象,(对于调用抽象类必须使用继承) 模版 //抽象定义一个父类抽象类 abstract class FatherAbstract{void showFatherAbstract(String color, String name, int age, double serail_abstract){System.out.println("color " color &…

鸿蒙App开发学习 - TypeScript编程语言全面开发教程(上)

背景 根据鸿蒙官方的说明: ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展,继承了TS的所有特性,是TS的超集。因此,在学习ArkTS语言之前&#…

我的尝试:Codigger + Vim

若您愿意耐心投入,学习 Vim 的过程其实远比想象中轻松。我对 Vim 产生兴趣,主要是源于它对提升生产力的巨大潜力。我尝试了 Neovim、NvChad 以及 Codigger Vim 插件,如今我的工作效率已远超从前。 那么,Vim 究竟是什么呢&#xff…

交叉注意力融合时空特征的TCN-Transformer并行预测模型

独家 | 高创新预测模型 往期精彩内容: 时序预测:LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较-CSDN博客 风速预测(一)数据集介绍和预处理-CSDN博客 风速预测(二)基于Pytorch的EMD-LSTM模型-CSDN博…

OSPF虚链路vlink

OSPF虚链路——vlink(使得其他区域和骨干区域相连) 虚链路:一定是跨越非骨干区域连接的 1、虚链路属于区域0的逻辑链路 2、虚链路只能穿越1个非骨干区域 3、虚链路不能穿越特殊区域; vlink在配置的时候,需要指对方…