Python流程控制详解

news2024/11/20 0:28:54

和其它编程语言一样,Python流程控制可分为 3 大结构:顺序结构、选择(分支)结构和循环结构。

Python对缩进的要求(重点)

Python 是一门非常独特的编程语言,它通过缩进来识别代码块,所以你不能胡乱缩进,这样很容易导致语法错误。

  • Python 是以缩进来标记代码块的,代码块一定要有缩进,没有缩进的不是代码块。
  • Python 要求代码块必须缩进,但是却没有要求缩进量,你可以缩进 n 个空格或者 n 个 Tab 键的位置。推荐缩进 1 个 Tab键或者 4 个空格。
  • 同一个代码块的缩进量要相同,缩进量不同的不属于同一个代码块。如果某个语句忘记缩进了,Python 解释器并不一定会报错,但是程序的运行逻辑往往会有问题。
  • 不需要使用代码块的地方千万不要缩进,一旦缩进就会产生一个代码块

一、条件控制

1、if语句

1.1 if else语句

使用 if else 语句对条件进行判断,然后根据不同的结果执行不同的代码,这称为选择结构或者分支结构。

Python 中的 if else 语句可以细分为三种形式,分别是:

  • if 语句,
  • if else 语句,
  • if elif else 语句。Python 中用 elif 代替了 else if。elif 和 else 都不能单独使用,必须和 if 一起出现,并且要正确配对。

if 语句的一般格式:

if 表达式 1:
    代码块 1
elif 表达式 2:
    代码块 2
... //其它elif语句
else:
    代码块 n

注意:

  • 代码块由具由相同缩进量的若干条语句组成。
  • if、elif、else 语句的最后都有冒号:,不要忘记。

示例代码如下:

age = 18

if age <= 18:
    print("小于等于18")
else:
    print("大于18")

1.2 if语句嵌套

Python 中,if、if else 和 if elif else 之间可以相互嵌套。需要注意,在相互嵌套时,一定要严格遵守不同级别代码块的缩进规范。

if 语句嵌套的一般格式:

if 表达式1:
    代码块
    if 表达式2:
        代码块
    elif 表达式3:
        代码块
    else:
        代码块
elif 表达式4:
    代码块
else:
    if 表达式 5:
        代码块
    else:
        代码块

示例代码如下:

age = int(input("请输入你的年龄:"))

if age < 18:
    if age < 13:
        print("青少年")
    else:
        print("小屁孩")
else:
    print("成年人")

2、match…case语句

在 Python 中没有 switch…case 语句,但在 Python3.10 版本添加了 match…case的条件判断,不需要再使用一连串的 if-else 来判断了。

语法格式如下:

match subject:
    case <pattern_1>:
        <action_1>
    case <pattern_2>:
        <action_2>
    case <pattern_3>:
        <action_3>
    case _:
        <action_wildcard>

match 后的对象会依次与 case 后的内容进行匹配,如果匹配成功,则执行匹配到的表达式,否则直接跳过,_ 可以匹配一切,类似 Java 中的 default。

示例代码如下:

sex = -1

match sex:
    case 1:
        print("男")
    case 0:
        print("女")
    case _:
        print("未知")

二、循环语句

1、while循环语句

Python 中 while 语句的一般形式:

while 条件表达式:
    代码块

示例代码如下:

# 求 num 到 count之和
num = 1
count = 100
sum = 0
while num <= 100:
    sum += num
    num += 1
else:
    print("求和操作完成")
    
print("%d 到 %d 之和为: %d" % (num, count, sum))

在这里插入图片描述

2、循环使用 else 语句

Python 中,无论是 while 循环还是 for 循环,其后都可以紧跟着一个 else 代码块,它的作用是当循环条件为 False 跳出循环时,程序会最先执行 else 代码块中的代码。

while 语法格式如下:

while 条件表达式:
    代码块
else:
	循环结束后执行的代码块

for 语法格式如下:

for 迭代变量 in 字符串|列表|元组|字典|集合:
    代码块
else:
	循环结束后执行的代码块

3、for 循环语句

Python for 循环的语法格式如下:

for 迭代变量 in 字符串|列表|元组|字典|集合:
    代码块

示例代码如下:

# 遍历数值
for i in range(0, 10, 2):
    print(i)

# 遍历列表
arr = ["A", "B", "C", "D"]
for ele in arr:
    print(ele)
else:
    print("------------")

# 遍历元组
tup1 = ("Python", 1, [2, 'a'], ("abc", 3.0))
for i in tup1:
    print(i)

4、循环嵌套

Python 不仅支持 if 语句相互嵌套,while 和 for 循环结构也支持嵌套。分支结构语句与循环结构语句也可以相互嵌套,甚至可以多层嵌套。

示例代码如下:

for sex in range(0, 3):
    match sex:
        case 1:
            n = 1
            while n <= 2:
                print("我是男" + str(n) + "号")
                n += 1
        case 0:
            for letter in 'female':
                if letter == 'a':
                    pass
                    print('执行 pass 块')
                print('当前字母 :', letter)
        case _:
            print("未知")
else:
    print("-----执行完毕-----")

在这里插入图片描述

5、强制跳出循环

Python 提供了 2 种强制离开当前循环体的办法:

  • break 语句:可以完全终止当前循环。如果你从 for 或 while 循环中终止循环,任何对应的循环 else 块将不执行。
  • continue 语句:可以跳过执行当前循环体中的剩余语句,然后继续进行下一次的循环。

注意:

  • 如果循环后面使用一个 else 语句,那么在循环过程中遇到了 break 语句,则会终止循环,此时不会执行 else 子句。
  • 对于嵌套的循环结构来说,break 语句只会终止所在循环体的执行,而不会作用于所有的循环体。
  • break 语句一般会结合 if 语句进行搭配使用,表示在某种条件下跳出循环体。

示例代码如下:

for sex in range(0, 3):
    match sex:
        case 1:
            n = 1
            while n <= 2:
                print("我是男" + str(n) + "号")
                n += 1
        case 0:
            for letter in 'female':
                if letter == 'a':
                    continue
                    pass
                    print('执行 pass 块')
                print('当前字母 :', letter)
        case _:
            break
            print("未知")
else:
    print("-----执行完毕-----")

在这里插入图片描述

三、其他语句

1、pass语句

pass 是 Python 中的关键字,pass是空语句,用来让解释器跳过此处,什么都不做。是为了保持程序结构的完整性。

pass 语句不做任何事情,一般用做占位语句或者放一条语句。有时使用 pass 语句比使用注释更加优雅。

使用 pass 语句非常简单,示例代码如下:

for letter in 'female':
    if letter == 'a':
        pass
        print(' ->> 执行 pass 块')
    print('当前字母 :', letter)

在这里插入图片描述

– 求知若饥,虚心若愚。

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

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

相关文章

ConditionalOnBean详解及ConditionalOn××总结

ConditionalOnBean详解 为什么学习ConditionalOnBean 在学习 Springboot 自动装配的时候遇到 Bean 装配和 Bean 配置需要条件判断的场景时&#xff0c;查阅了相关内容了解到 Conditional 和 ConditionalOnBean 注解&#xff0c;深入学习之后受益匪浅。 ConditionalOnBean测试…

后量子 KEM 方案:Newhope

参考文献&#xff1a; Lyubashevsky V, Peikert C, Regev O. On ideal lattices and learning with errors over rings[J]. Journal of the ACM (JACM), 2013, 60(6): 1-35.Lyubashevsky V, Peikert C, Regev O. A toolkit for ring-LWE cryptography[C]//Advances in Cryptol…

Linux常见指令大全(一)

&#x1f339;作者:云小逸 &#x1f4dd;个人主页:云小逸的主页 &#x1f4dd;Github:云小逸的Github &#x1f91f;motto:要敢于一个人默默的面对自己&#xff0c;强大自己才是核心。不要等到什么都没有了&#xff0c;才下定决心去做。种一颗树&#xff0c;最好的时间是十年前…

POE交换机全方位解读(上)

POE交换机在安防行业的应用&#xff0c;给视频监控系统带来了质的改变&#xff0c;POE交换机。可通过网线为无线AP、网路摄像头等PoE终端设备供电&#xff0c;传送距离可达100m&#xff0c;安装简单&#xff0c;即插即用。非常适合无线城市、安防监控等行业使用。 POE供电方案及…

「融云政企数智办公解决方案」入选「大信创产品目录」

1月31日&#xff0c;CIO 时代、新基建创新研究院联合公布“大信创产品目录”&#xff0c;“融云政企数智办公解决方案”成功通过审核&#xff0c;被正式纳入“大信创产品目录”。 据悉&#xff0c;CIO 时代、新基建创新研究院从去年底开始组织开展“大信创产品目录”征集工作&a…

【C语言 数据结构】数组与对称矩阵的压缩存储

文章目录数组的定义数组的顺序表示和实现顺序表中查找和修改数组元素矩阵的压缩存储特殊矩阵稀疏矩阵数组的定义 提到数组&#xff0c;大家首先会想到的是&#xff1a;很多编程语言中都提供有数组这种数据类型&#xff0c;比如 C/C、Java、Go、C# 等。但本节我要讲解的不是作为…

frp构建多级网络代理

简介frp 是一个专注于内网穿透的高性能的反向代理应用&#xff0c;支持 TCP、UDP、HTTP、HTTPS 等多种协议&#xff0c;采用 Golang 编写&#xff0c;支持跨平台&#xff0c;仅需下载对应平台的二进制文件即可执行&#xff0c;没有额外依赖。frp可以将内网服务以安全、便捷的方…

Idea 中【Maven】的环境配置

目录 一 maven 项目管理工具软件二.首先要安装Jdk1.7/8 和IDEA三.在IDEA中配置maven四.在MavenDemo01下 创建多个模块项目四.Jar包依赖 插件五.运用一 maven 项目管理工具软件 1 . Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具…

MQ如何保证消息不丢失

如何保证消息不丢失 哪些环节会造成消息丢失 其实主要就是跨网络的环境中需要考虑消息的丢失&#xff0c;主要是有以下几个方面 生产者往MQ发送消息MQ的Broker是集群有主从的&#xff0c;主节点把消息同步到从节点时也需要考虑消息丢失问题消息从内存持久化到硬盘时&#xf…

软考高级系统架构师背诵要点---软件架构设计

软件架构设计 软件架构的概念&#xff1a; 软件架构为软件系统提供了一个结构、行为和属性的高级抽象&#xff0c;由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式及这些模式的约束组成 软件架构41视图&#xff1a; 逻辑视图&#xff1a;主要是整个系统的抽…

Java基础:面向对象

一、设计对象并使用 二、封装 对象代表什么,就得封装对应的数据,并提供数据对应的行为。 1.private关键字&#xff1a;priviate修饰的成员变量只能在本类中访问。 2.this关键字&#xff1a;能够直接对应成员变量&#xff08;当局部变量名相同时&#xff09;。 3. 构造方法…

【Linux】十分钟快速了解Linux常用指令(建议收藏)

目录&#x1f496;一. 关机指令01. shutdown02. halt03. reboot&#x1f496;二. 常用指令04. ls05. pwd06. cd07. touch08. mkdir09. rm10. man11. cp(复制)12. mv指令13. nano14. cat15. less16. head17. tail18. find19. grep20. zip/unzip21. tar&#x1f496;三、 日期指令…

JS 中 reduce()方法及使用详解

reduce()方法可以搞定的东西特别多&#xff0c;就是循环遍历能做的&#xff0c;reduce都可以做&#xff0c;比如数组求和、数组求积、统计数组中元素出现的次数、数组去重等等。 reduce() 方法对数组中的每个元素执行一个由您提供的reduce函数(依次执行)&#xff0c;将其结果汇…

Python字符串分割方法【心得总结】

Python中字符串分割的常用方法 是直接调用字符串的str.split方法&#xff0c; 但是其只能指定一种分隔符&#xff0c; 如果想指定多个分隔符拆分字符串需要用到re.split方法 &#xff08;正则表达式的split方法&#xff09; 源码资料电子书:点击此处跳转文末名片获取 str.spli…

OAuth2简单介绍

目录 一、什么是OAuth2 二、OAuth2中的角色 1、资源所有者 2、资源服务器 3、客户 4、授权服务器 三、认证流程 四、生活中的OAuth2思维 五、令牌的特点 六、OAuth2授权方式 1、授权码 2、隐藏式 3、密码式 4、凭证式 一、什么是OAuth2 OAuth2.0是目前使用非常广…

7个高频出现的面试题

收集了2022年所有学生的面试题后&#xff0c;我整理出了7个高频出现的面试题&#xff0c;一起来看看。 高频问题1&#xff1a;请自我介绍下&#xff1f; 高频问题2&#xff1a;请介绍下最近做过的项目&#xff1f; 高频问题3&#xff1a;请介绍下你印象深刻的bug&#xff1f; 高…

Spring Batch 步骤对象-Chunk Tasklet

引言 接着上篇&#xff1a;Spring Batch 步骤对象-步骤Step与Tasklet 了解step步骤概念及其使用之后&#xff0c;本篇再来讲解spring batch使用更广&#xff0c;功能更强大的tasklet&#xff1a;居于块的批处理步骤&#xff1a;Chunk Tasklet 简介 居于chunk(块)的Tasklet相…

江西/杭州/黑龙江/深圳DAMA-CDGA/CDGP数据治理认证招生简章

2023年2月江西/杭州/黑龙江/深圳DAMA-CDGA/CDGP数据治理认证招生简章 DAMA认证为数据管理专业人士提供职业目标晋升规划&#xff0c;彰显了职业发展里程碑及发展阶梯定义&#xff0c;帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力&#xff0c;促进开展工作实践…

【笔记】质量保障体系

一、什么叫质量保障体系&#xff1f;质量保障体系,是指指贯穿研发流程进行的一系列质量活动。通过方案选型、策略决策、工具支撑、组织协同分工等&#xff0c;把质量活动进行系统化、标准化、流程化。其目的是保障业务质量。质量保障体系质量活动工具平台质量流程。二、紧贴业务…

【My Electronic Notes系列——正弦波振荡电路】

目录 序言&#xff1a; &#x1f3c6;&#x1f3c6;人生在世&#xff0c;成功并非易事&#xff0c;他需要破茧而出的决心&#xff0c;他需要永不放弃的信念&#xff0c;他需要水滴石穿的坚持&#xff0c;他需要自强不息的勇气&#xff0c;他需要无畏无惧的凛然。要想成功&#…