【Python基础|Day02】流程控制语句
文章目录
- 📚今日学习目标
- 第一部分:控制流程概述
- 第二部分:分支结构详解
- 2.1 if 语句
- 2.1.1 基本格式与执行流程:
- 2.1.2 重要注意事项:
- 2.2 match...case语句
- 2.2.1 基本格式与执行流程:
- 2.2.2 重要注意事项:
- 2.3 分支结构对比
- 第三部分:循环结构详解
- 3.1 for循环
- 3.2 while循环
- 3.3 循环结构对比
📚今日学习目标
通过本篇文章,你将能够:
- 理解程序控制流程的三种基本结构:顺序、分支和循环
- 掌握 if 语句的三种格式及其执行流程
- 掌握 match…case 语句的格式与执行流程
- 掌握 for 循环的格式与执行流程
- 掌握 while 循环的格式与执行流程
- 能够根据实际需求选择合适的控制结构(分支或循环)来解决问题。
✨注:本文的结构与 Java 学习笔记(Day03)保持一致,有助于进行对比学习。
第一部分:控制流程概述
程序控制流程分为三大类:
| 结构类型 | 描述 | Python 语法 | 适用场景 |
|---|---|---|---|
| 顺序结构 | 默认执行流程,代码按编写顺序自上而下依次执行 | 无特殊语法 | 所有程序的基础流程 |
| 分支结构 | 根据不同条件选择执行不同代码块 | if, match…case | 条件判断、多路选择 |
| 循环结构 | 重复执行特定代码块直到条件不满足 | for, while | 重复操作、遍历数据 |
第二部分:分支结构详解
2.1 if 语句
2.1.1 基本格式与执行流程:
格式一:单分支结构—如果条件成立就执行代码语句
if 关系表达式:
语句体
对比Java:
if(关系表达式){
语句体;
}
执行流程:
- 先计算关系表达式的值
- 如果值为 True,则执行语句体
- 如果值为 False,则跳过语句体
- 继续执行后续代码
格式二:双分支结构—如果条件成立就执行代码语句1,否则就执行代码语句2
if 关系表达式:
语句体1
else:
语句体2
对比Java:
if(关系表达式){
语句体1;
}else{
语句体2;
}
执行流程:
- 先计算关系表达式的值
- 如果值为 True,则执行 语句体1
- 如果值为 False,则执行 语句体2
- 继续执行后续代码
格式三:多分支结构—存在多种不同情况执行对应情况的语句体
if 关系表达式1:
语句体1
elif 关系表达式2:
语句体2
...
else:
语句体
对比Java:
if(关系表达式1){
语句体1;
}else if(关系表达式2){
语句体2;
}
...
else{
语句体;
}
执行流程:
- 先计算关系表达式1的值
- 如果关系表达式1的值为 True 就执行语句体1,如果为 False 就计算关系表达式2的值
- 如果关系表达式2的值为 True 就执行语句体2,如果为 False 就计算关系表达式3的值
- …
- 如果所有关系表达式结果都为 False ,就执行else后的语句
- 继续执行后续代码
2.1.2 重要注意事项:
- 布尔变量的简洁写法:对于一个布尔量,尽量不要用" == "来判断,直接写在括号中即可。即:对于一个布尔变量 flag,判断其为真时,推荐直接写 if flag:,而不是 if flag == True:。
- 执行顺序特性:if 结构中,条件判断从上到下进行,一旦某个条件满足,执行对应代码块后立即退出,不再检查后续条件。
- else 子句是可选的:当不需要处理所有条件都不满足的情况时,可以省略。
- 语法格式的强调事项:
- 冒号:每个 if、elif、else 后面都必须有英文冒号 :
- 缩进:Python 使用缩进(通常是 4 个空格)来定义代码块的归属。归属于 if 的语句必须严格保持相同的缩进级别。
2.2 match…case语句
2.2.1 基本格式与执行流程:
match 表达式:
case 值1:
语句体1
case 值2 if 条件表达式: # 条件表达式为 True 且 表达式值为值2
语句体2
case 值3 | 值4 : # 匹配值3 或者 值4
语句体3
...
case _: # 默认操作
语句体n
对比Java:
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
if(条件表达式){
语句体2;
}
break;
case 值3,值4:
语句体3;
...
default:
语句体n;
break;
}
执行流程:
- 先计算表达式的值
- 依次和case后面的模式比较,如果匹配成功,就会执行相应语句,并结束匹配。Python自动break,不需要显式写
- 如果所有case(除 case_)均不匹配,就会执行case_里面的语句,然后结束整个match语句
2.2.2 重要注意事项:
| 特性 | Python match-case | Java switch |
|---|---|---|
| 本质 | 模式匹配: 不仅可以匹配值,还可以匹配类型、结构,并解构数据 | 多路选择:检查数据的"值",主要用于对同一变量的等值比较 |
| 匹配对象 | 任意数据类型(值、类型、列表、字典等结构化数据) | 基本类型(int, char等)、枚举、字符串 |
| 核心能力 | 结构解构 + 类型检查 + 值匹配 | 值匹配为主 |
2.3 分支结构对比
- 使用 if 语句:适合条件判断涉及范围比较、复杂的布尔逻辑组合、条件依赖于多个变量的场景。
- 使用match…case语句:适合基于单个变量与多个固定的、离散的值进行等值匹配的场景,尤其是匹配类型或解构数据时。
第三部分:循环结构详解
3.1 for循环
格式:
在 Python 中,for 循环本质上是一种遍历机制,用于对任何可迭代对象(如列表、字符串、字典等)进行逐个处理。
for 元素 in 待处理数据集:
循环体
else: # 可选部分
循环正常结束后执行的代码(未被 break 中断)
对比Java:
for(初始化语句;条件表达式;条件控制语句){
循环体;
}
执行流程:
- 从可迭代对象中按顺序“取出”下一个元素
- 将该元素赋值给循环变量,并执行循环体
- 重复步骤 1-2,直到所有元素都被处理完毕
- 如果循环完整地遍历了所有元素(即未被 break 语句中途跳出),则执行可选的 else 子句
3.2 while循环
格式:
while 条件表达式:
循环体
else: # 可选部分
循环正常结束后执行的代码(未被 break 中断)
对比Java:
初始化语句 ;
while(条件表达式){
循环体 ;
条件控制语句 ;
}
执行流程:
- 计算条件表达式的值
- 如果值为 True,则执行循环体;如果值为 False,则跳转到步骤 4
- 执行完循环体后,返回步骤 1
- 如果循环是因条件变假而正常结束(未被 break 中断),则执行可选的 else 子句。
3.3 循环结构对比
| 特性 | for循环 | while循环 |
|---|---|---|
| 核心 | 遍历可迭代对象中的每个元素 | 在条件保持为真时重复执行 |
| 适用场景 | 一个已知的数据集进行遍历或已知次数的循环 | 循环次数未知,知道开始结束循环的条件 |
以上为个人学习总结,旨在梳理个人理解。如有疏漏或不当之处,欢迎指正与交流。








