目录
[二、Python 流程控制](#二、Python 流程控制)
[2.1 条件判断](#2.1 条件判断)
[2.1.1 if 条件判断](#2.1.1 if 条件判断)
[2.1.2 if ... else 语法](#2.1.2 if ... else 语法)
[2.1.3 if ... elif ... else 语法](#2.1.3 if ... elif ... else 语法)
[2.2 模式匹配 match...case](#2.2 模式匹配 match...case)
[2.2.1 基本语法](#2.2.1 基本语法)
[2.2.2 案例代码](#2.2.2 案例代码)
[2.2.3 match...case 使用场景](#2.2.3 match...case 使用场景)
[2.3 While 循环](#2.3 While 循环)
[2.4 For 循环](#2.4 For 循环)
[2.4.1 For 循环基本使用](#2.4.1 For 循环基本使用)
[2.4.2 For 循环案例使用](#2.4.2 For 循环案例使用)
一、前言
在任何一门编程语言中,流程控制是非常必要也是很关键的控制代码逻辑的语法,Python也不例外。流程控制语句是编程语言中用来改变代码执行顺序的语句。默认情况下,代码是从上到下依次执行的(顺序结构),而流程控制语句允许你:
-
根据条件决定执行哪段代码(分支)
-
重复执行某段代码(循环)
-
跳转到代码的其他位置
可以这样理解:流程控制语句就是程序的"指挥棒",决定了代码执行的路径。
二、Python 流程控制
接下来通过实际案例详细介绍下在Python 中常用的流程控制语法的使用。
2.1 条件判断
2.1.1 if 条件判断
使用场景:只有满足指定条件,才会执行对应的代码逻辑。基本格式如下:

注意:
Python中是通过缩进来描述代码的归属的,归属于if代码块的语句,需要在前方缩进4个空格(按Tab键Pycharn会自动转为空格)。
下面是一段if的示例代码
bash
score = 70
if score < 60:
print("不及格")
if score >= 60 and score <= 70:
print("及格了")
if score >=80:
print("优秀")
运行结果

if 语句注意事项:
-
判断条件的结果一定要是布尔类型
-
不要忘记判断条件后的冒号(:)
-
if语句里面的代码块,需要在前方缩进空格(建议4个空格),通过缩进来描述代码的层级关系(归属)
如下是一个完整的案例,模拟用户登录输入账号和密码:
bash
username = "jike"
password = "admin123"
input_name = input("请输入账号")
input_pwd = input("请输入密码")
if input_name == username and input_pwd == password :
print("登录成功")
if input_name != username or input_pwd != password :
print("登录失败,账号或密码错误")

2.1.2 if ... else 语法
格式如下:
bash
if要判断的条件:
条件成立时,执行对应的操作1
else:
条件不成立时,执行的操作2
如下,我们对上面的程序进行if ... else改造
bash
username = "jike"
password = "admin123"
input_name = input("请输入账号")
input_pwd = input("请输入密码")
if input_name == username and input_pwd == password :
print("登录成功")
else :
print("登录失败,账号或密码错误")
if ... else 语法注意事项:
-
else是不需要条件判断的,当if条件不成立时,else就执行了
-
else代码块,也需要使用空格缩进(建议4个空格)
2.1.3 if ... elif ... else 语法
语法结构如下:
bash
# if...elif...else结构
if要判断的条件1:
条件成立时,执行对应的操作1
elif 要判断的条件2:
条件成立时,执行对应的操作2
else:
条件不成立时,执行的操作3
注意:
满足第1个条件,就不会判断第2个部分和第3个部分;第1个条件不成立,才会判断第2个条件;1和2都不成立,才会进入else。

使用该语法对上面的登录程序进行改造如下:
bash
username = "jike"
password = "admin123"
input_name = input("请输入账号")
input_pwd = input("请输入密码")
if input_name == username and input_pwd == password :
print("登录成功")
elif input_name == "root" and input_pwd == "123456" :
print("登录成功")
else :
print("登录失败,账号或密码错误")
注意事项:
-
elif可以写多个
-
else 可有可无,如果有必须放在最后
-
多个条件判断是有顺序的,从上到下判断,如果前面有条件成立了,后面的条件不会判断了
2.2 模式匹配 match...case
2.2.1 基本语法
结构模式匹配就是用一个清晰的模板 去精准的匹配数据的结构和内容,匹配成功则执行相应的操作。如下,左边是使用if ... elif... else编写的代码,如果使用右边的match...case来编写,可维护性更好

match...case执行流程如下:
-
首先计算match指定的表达式的值。
-
从上到下依次和case后面的值进行匹配,匹配正确,就执行对应语句。
-
如果前面所有的case都没有匹配上,就会执行默认的case _ 。
2.2.2 案例代码
如下是一个具体的示例代码:
bash
day =input("请输入星期几(1-7):")
match day:
case "1":
print("周一")
case "2":
print("周二")
case "3":
print("周三")
case "4":
print("周四")
case "5":
print("周五")
case "6" | "7":
print("休息日")
case _:
print("数据有误")
运行得到下面的效果

下面是一个模拟计算器的案例代码:
bash
num1=float(input("请输入第一个数:"))
num2=float(input("请输入第二个数:"))
oper=input("请输入运算符(+-*/):")
match oper:
case "+":
print(f"{num1} + {num2} = {num1 + num2}")
case "-":
print(f"{num1} - {num2} = {num1 - num2}")
case "*":
print(f"{num1} * {num2} = {num1 * num2}")
case "/":
print(f"{num1} / {num2} = {num1 / num2}")
case _:
print("操作不支持!!!")
运行结果如下:

2.2.3 match...case 使用场景
-
match:基于某个变量的多个固定值进行分支判断时,可以使用match模式匹配
-
if:条件判断涉及复杂的逻辑判定、范围比较及组合条件时
2.3 While 循环
While 循环是日常编码开发中使用很多的一种语法结构,其语法结构如下:

注意
while循环是通过条件表达式,来控制是否要进行下一次循环。
如下是一个案例的具体执行流程

完整的程序代码如下:
bash
i=0
while i<10:
print("人生苦短,我用python")
i=i+1
else:
print("循环执行结束")

While 循环注意事项:
-
条件表达式的结果为布尔类型
-
通过空格缩进表述层级关系
-
规划好循环终止的条件,否则将无限循环(死循环)
下面是一个1~100之间偶数的累加之和的案例代码
bash
i=1
total=0
while i<=100:
if i%2==0:
total=total+i
i=i+1
print(total)

2.4 For 循环
2.4.1 For 循环基本使用
while循环是通过条件表达式来控制是否要进行下一次循环的。而for循环,本质是一种轮询遍历机制,对一批内容进行逐个处理。
For 循环的执行流程如下,右侧给了一个演示案例

下面是一个演示程序
bash
msg = input("请输入你要遍历的字符串")
for item in msg:
print(f"元素:{item}")
else:
print("遍历结束")

for循环 与while循环的场景对比:
-
while循环:用于在某个条件满足时一直循环,循环的次数通常是未知的,只知道循环开始/结束的条件。(关注的是循环的条件)
-
for循环:用于对一个已知的数据集进行遍历或已知次数的循环。(关注的是遍历每一个元素)
2.4.2 For 循环案例使用
For 循环在日常开发中高频使用,下面结合几个实际案例场景进行说明。
1、计算1-100之间所有奇数之和
这个需求需要用到python中的range函数,其用法如下:

完整代码如下:
bash
total=0
for i in range(1,101):
if i%2==1:
total+=i
print(total)

三、写在文末
本文通过实际案例详细介绍了Python 语言中流程控制语法的使用,希望对看到的同学有帮助,本篇到此结束, 感谢观看。