零基础学Python(9)— 流程控制语句(下)

前言:Hello大家好,我是小哥谈。流程控制语句是编程语言中用于控制程序执行流程的语句,本节课就带大家认识下Python语言中常见的流程控制语句!~🌈  

     目录

🚀1.while循环

🚀2.for循环

🚀3.循环嵌套

🚀4.跳转语句

🚀5.pass空语句

🚀1.while循环

while循环是通过一个条件来控制是否要继续反复执行循环体中的语句。

语法如下:

while 条件表达式:循环体

说明:循环体是指一组被重复执行的语句。

当条件表达式的返回值为真时,则执行循环体中的语句,执行完毕后,重新判断条件表达式的返回值,直到表达式返回的结果为假时,退出循环。while循环语句的执行流程如下图所示。

我们用现实生活中的例子来理解while循环的执行流程。在体育课上,体育老师要求同学们沿着环形操场跑圈,要求当听到老师吹的哨子声时就停下来。同学们每跑一圈,可能会请求一次老师吹哨子。如果老师吹哨子,则停下来,即循环结束,否则继续跑步,即执行循环。

注意:在使用while循环语句时,一定不要忘记添加将循环条件改变为False的代码,否则,将产生死循环。


🚀2.for循环

for循环是一个依次重复执行的循环。通常适用于枚举或遍历序列,以及迭代对象中的元素。

语法如下:

for 迭代变量 in 对象:循环体

其中,迭代变量用于保存读取出的值;对象为要遍历或迭代的对象,该对象可以是任何有序的序列对象,如字符串、列表和元组等;循环体为一组被重复执行的语句。

for循环语句的执行流程如下图所示:

我们用现实生活中的例子来理解for循环的执行流程。在体育课上,体育老师要求同学们排队进行踢毽球测试,每个同学一次机会,毽球落地则换另一个同学,直到全部同学都测试完毕,即循环结束。

案例1:进行数值循环

在使用for循环时,最基本的应用就是进行数值循环。例如,想要实现从1到100的累加,可以通过下面的代码实现:

print("计算1+2+3+……+100的结果为:")
result = 0                      # 保存累加结果的变量
for i in range(101):result += i                 # 实现累加功能
print(result)                   # 在循环结束时输出结果

在上面的代码中,使用了range()函数,该函数是Python内置的函数,用于生成一系列连续的整数,多用于for循环语句中。其语法格式如下:

range(start,end,step)

参数说明:

start:用于指定计数的起始值,可以省略,如果省略则从0开始。

end:用于指定计数的结束值(但不包括该值,如range(7),则得到的值为0~6,不包括7),不能省略。当range()函数中只有一个参数时,即表示指定计数的结束值。

step:用于指定步长,即两个数之间的间隔,可以省略,如果省略则表示步长为1。例如,range(1,7)将得到1、2、3、4、5、6。

注意:在使用range()函数时,如果只有一个参数,那么表示指定的是end;如果有两个参数,则表示指定的是start和end;如果3个参数都存在时,最后一个参数才表示步长。

例如,使用下面的for循环语句,将输出10以内的所有奇数:

for i in range(1,10,2):print(i,end = ' ')

得到的结果如下:

1 3 5 7 9

案例2:遍历字符串

使用for循环语句除了可以循环数值,还可以逐个遍历字符串,例如,下面的代码可以将横向显示的字符串转换为纵向显示:

string = '腹有读书气自华'
print(string)                             # 横向显示
for ch in string:print(ch)                              # 纵向显示

上面代码的运行结果如下图所示。

说明:for循环语句还可以用于迭代(遍历)列表、元组、集合和字典等。


🚀3.循环嵌套

在Python中,允许在一个循环体中嵌入另一个循环,这称为循环嵌套。例如,在电影院找座位号,需要知道第几排第几列才能准确找到自己的座位号,假如寻找如下图所示的在第二排第三列座位号,首先寻找第二排,然后在第二排再寻找第三列,这个寻找座位的过程就类似循环嵌套。

在Python中,for循环和while循环都可以进行循环嵌套。

例如,在while循环中套用while循环的格式如下:

while 条件表达式1:while 条件表达式2:循环体2循环体1

在for循环中套用for循环的格式如下:

for 迭代变量1 in 对象1:for 迭代变量2 in 对象2:循环体2循环体1

在while循环中套用for循环的格式如下:

while 条件表达式:for 迭代变量 in 对象:循环体2循环体1

在for循环中套用while循环的格式如下:

for 迭代变量 in 对象:while 条件表达式:循环体2循环体1

除了上面介绍的4种嵌套格式外,还可以实现更多层的嵌套,因为与上面的嵌套方法类似,这里就不再一一列出了。


🚀4.跳转语句

当循环条件一直满足时,程序将会一直执行下去,就像一辆迷路的车,在某个地方不停地转圈。如果希望在中间离开循环,也就是for循环结束重复之前,或者while循环找到结束条件之前。有两种方法来做到:

1.使用continue语句直接跳到循环的下一次迭代。

2.使用break完全中止循环。

🍀(1)break语句

break语句可以终止当前的循环,包括while和for在内的所有控制语句。以独自一人沿着操场跑步为例,原计划跑10圈。可是在跑到第2圈的时候,遇到自己的女神或者男神,于是果断停下来,终止跑步,这就相当于使用了break语句提前终止了循环。break语句的语法比较简单,只需要在相应的while或for语句中加入即可。

说明:break语句一般会结合if语句进行搭配使用,表示在某种条件下,跳出循环。如果使用嵌套循环,break语句将跳出最内层的循环。

在while语句中使用break语句的形式如下:

while 条件表达式1:执行代码if 条件表达式2:break

其中,条件表达式2用于判断何时调用break语句跳出循环。在while语句中使用break语句的流程如下图所示。

在for语句中使用break语句的形式如下:

for 迭代变量 in 对象:if 条件表达式:break

其中,条件表达式用于判断何时调用break语句跳出循环。在for语句中使用break语句的流程如下图所示。

🍀(2)continue语句

continue语句的作用没有break语句强大,它只能终止本次循环而提前进入到下一次循环中。仍然以独自一人沿着操场跑步为例,原计划跑步10圈。当跑到第2圈一半的时候,遇到自己的女神或者男神也在跑步,于是果断停下来,跑回起点等待,制造一次完美邂逅,然后从第3圈开始继续。

continue语句的语法比较简单,只需要在相应的while或for语句中加入即可。

说明:continue语句一般会与if语句搭配使用,表示在某种条件下,跳过当前循环的剩余语句,然后继续进行下一轮循环。如果使用嵌套循环,continue语句将只跳过最内层循环中的剩余语句。

在while语句中使用continue语句的形式如下:

while 条件表达式1:执行代码if 条件表达式2:continue

其中,条件表达式2用于判断何时调用continue语句跳出循环。在while语句中使用continue语句的流程如下图所示。

在for语句中使用continue语句的形式如下:

for 迭代变量 in 对象:if 条件表达式:continue

其中,条件表达式用于判断何时调用continue语句跳出循环。在for语句中使用continue语句的流程如下图所示。


🚀5.pass空语句

在Python中还有一个pass语句,表示空语句。它不做任何事情,一般起到占位作用。例如,在应用for循环输出1~10之间(不包括10)的偶数时,在不是偶数时,应用pass语句占个位置,方便以后对不是偶数的数进行处理。代码如下:

for i in range(1,10):if i%2 == 0:                         # 判断是否为偶数print(i,end = ' ')else:                             # 不是偶数pass                          # 占位符,不做任何事情

程序运行结果如下:

2 4 6 8


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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis核心技术与实战【学习笔记】 - 31.番外篇:Redis客户端如何与服务器端交换命令和数据

简述 Redis 使用 RESP 协议(Redis Serialzation Protocol)协议定义了客户端和服务器端交互的命令、数据的编码格式。在 Redis 2.0 版本中,RESP 协议正式称为客户端和服务器端的标准通信协议。从 Redis 2.0 到 Redis 5.0 ,RESP 协…

[算法前沿]--059-大语言模型Fine-tuning踩坑经验之谈

前言 由于 ChatGPT 和 GPT4 兴起,如何让人人都用上这种大模型,是目前 AI 领域最活跃的事情。当下开源的 LLM(Large language model)非常多,可谓是百模大战。面对诸多开源本地模型,根据自己的需求,选择适合自己的基座模型和参数量很重要。选择完后需要对训练数据进行预处…

STM32之USART

概述 串口通信,通用异步收发传输器(Universal Asynchronous Receiver/Transmitter ),简称UART;而USART(Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步收发传输器。 USAR…

JavaScript鼠标移动事件

🧑‍🎓 个人主页:《爱蹦跶的大A阿》 🔥当前正在更新专栏:《VUE》 、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》 ​ ​ ✨ 前言 鼠标移动是用户界面中非常重要的交互行为。学习区分不同的鼠标移动事…

小白也能学会的Oracle优化教程-主打零基础

没错,这一篇不是标题党,真的是小白也能学会的Oracle 优化教程,学会了能解决很大一部分优化问题!! 1、这篇文章适用于哪些人 尤其适用于我这样的数据库小白、系统工程师、不懂SQL优化的部分开发人员。 如果你是一个专…

Web后端开发:事务与AOP

事务管理 在学习数据库时,讲到:事务是一组操作的集合,它是一个不可分割的工作单位。事务会把所有的操作作为一个整体,一起向数据库提交或者是撤销操作请求,要么同时成功,要么同时失败。 事务的操作主要有三…

Seurat - 聚类教程 (1)

设置 Seurat 对象 在本教程[1]中,我们将分析 10X Genomics 免费提供的外周血单核细胞 (PBMC) 数据集。在 Illumina NextSeq 500 上对 2,700 个单细胞进行了测序。可以在此处[2]找到原始数据。 我们首先读取数据。 Read10X() 函数从 10X 读取 cellranger 管道的输出&…

nvm安装nodejs 报错certificate has expired or is not yet valid

今天在使用nvm安装nodejs时,突然报如下错误: 从报错信息中很容易知道这是因为镜像凭证过期,所以我们只需要换个镜像即可。 打开你nvm的安装目录下的settings.txt文件,将下面两行添加到里面,如果已经有的就覆盖。 nod…

猫头虎分享已解决Bug || 深入剖析内存溢出问题:OutOfMemoryError or MemoryLeakException

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

RocketMQ事务消息

事务消息 应用场景: ​ 事务消息是RocketMQ非常有特色的一个高级功能。他的基础诉求是通过RocketMQ的事务机制,来保证上下游的数据一致性。 ​ 以电商为例,用户支付订单这一核心操作的同时会涉及到下游物流发货、积分变更、购…

MATLAB实现LSTM时间序列预测

LSTM模型可以在一定程度上学习和预测非平稳的时间序列,其具有强大的记忆和非线性建模能力,可以捕捉到时间序列中的复杂模式和趋势[4]。在这种情况下,LSTM模型可能会自动学习到时间序列的非平稳性,并在预测中进行适当的调整。其作为循环神经网络(RNN)的特殊形式,继承了循…

Blazor SSR/WASM IDS/OIDC 单点登录授权实例1-建立和配置IDS身份验证服务

目录: OpenID 与 OAuth2 基础知识Blazor wasm Google 登录Blazor wasm Gitee 码云登录Blazor SSR/WASM IDS/OIDC 单点登录授权实例1-建立和配置IDS身份验证服务Blazor SSR/WASM IDS/OIDC 单点登录授权实例2-登录信息组件wasmBlazor SSR/WASM IDS/OIDC 单点登录授权实例3-服务端…