在 Python3 中,控制语句是用来改变程序执行流程的核心语法,主要分为三种语句,分别是条件判断语句(分支)、循环语句(重复执行)、跳转语句(中断 / 跳过)。
在 Python3 中,用户可以通过标准输入(stdin)和标准输出(stdout)与程序进行交互,即根据程序提示输入数据,程序计算后输出结果,简单的来说:
标准输入:程序从控制台 / 终端读取用户输入的内容,主要使用 input() 函数。
标准输出:程序将内容打印 / 输出到控制台 / 终端,主要使用 print() 函数。
示例:提示用户输入姓名,然后将姓名再次打印到终端。
# 提示用户输入姓名
# input() 的参数是提示文本,用户输入后按回车,内容会被赋值给 name 变量
name = input("请输入你的姓名:")
# 将姓名打印到终端(print() 函数输出内容)
# 用 f-string 格式化输出,更直观展示结果
print(f"你输入的姓名是:{name}")更多关于标准输入和输出的内容将在后续详细介绍。
计算机在解决某个具体问题时,主要有 3 中情况,分别是顺序执行所有语句、选择执行部分语句和循环执行部分语句。对应程序设计中的 3 中结构是顺序结构、选择结构和循环结构。如下图:

上图中:
(1)顺序结构指编写完毕的语句按照编写顺序依次被执行。
(2)选择结构主要根据条件语句的结果选择执行不同的语句。如果条件为 True,则执行语句1。如果条件为 False,则执行语句2。
(3)循环结构指在一定条件下反复执行某段程序,知道条件不满足为止。如表达式结果为 True,则执行语句1,然后继续判断表达式,如果结果继续为 True,则再次执行语句1,如果为 False,则结束。
在 Python3 中,if 判断语句是实现分支逻辑的主要语法,它能根据条件的“真 / 假”决定执行哪一段代码,就像生活中“如果… 就…,否则…”的逻辑。
例如,如果早上 7 点钟起床,就自己做早餐吃,否则就不在外面买早餐吃。下面通过流程图进行表示:

Python3 中, if 语句有三种基础形式(if 语句、if-else 语句、if-elif-else 语句),下面将分别进行介绍:
在 Python3 中,使用 if 保留字来组成选择语句,其最简单的语法形式如下:
if 条件表达式:
# 条件为 True 时执行的代码块(必须缩进)其中,表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式(如 a > b and a != b),如果表达式值为真,则执行“语句块”。如果表达式的值为假,就跳过“语句块”,继续执行后面的语句。
if 语句的流程图如下:

示例 1:简单使用 if 语句
a = 10
if a >= 10:
print("a大于等于10")运行结果:
a大于等于10示例 2:用户输入数字,然后判断数字是否大于等于 10
a = input("请输入数字:")
if int(a) >= 10:
print("a大于等于10")运行结果:
请输入数字:12 // 注意,这里是用户输入的
a大于等于10
如果遇到只能二选一的条件,例如,某家公司在发展过程中遇到了“扩张”和“求稳”的抉择,此时,我们可以使用 Python3 提供的 if-else 语句来解决类似的问题,语法格式如下:
if 表达式:
语句块1
else:
语句块2使用 if-else 语句时,表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式。如果满足条件,则执行 if 语句后面的语句块1。否则,执行 else 语句后面的语句块2。
if-else 语句的流程图如下:

示例1:判断数字正负
num = -5
if num > 0:
print(f"{num} 是正数")
else:
print(f"{num} 是非正数(0或负数)") # 输出:-5 是非正数(0或负数)示例2:判断是否为闰年(简化版:能被4整除但不能被100整除,或能被400整除)
year = 2024
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print(f"{year} 是闰年") # 输出:2024 是闰年
else:
print(f"{year} 是平年")示例3:判断用户是否满足抽奖条件(登录且积分≥100)
is_login = True
points = 150
if is_login and points >= 100:
print("你满足抽奖条件,可参与抽奖!") # 输出:你满足抽奖条件,可参与抽奖!
else:
print("未满足抽奖条件:请先登录或积累积分≥100")嵌套 if-else 语句指在 if 或者 else 语句块内嵌套另一个 if-else,实现“多层二选一”逻辑。注意,建议嵌套≤3 层,避免代码混乱。
示例:判断成绩是否及格,且及格后判断是否优秀
score = 85
if score >= 60:
print("考试及格!")
# 嵌套if-else
if score >= 90:
print("成绩优秀,值得表扬!")
else:
print("继续努力,争取更优!") # 输出:考试及格! 继续努力,争取更优!
else:
print("考试不及格,需要补考!")单行 if-else 语句适用于简单逻辑,将双分支代码简化为一行,语法如下:
变量 = 表达式1 if 条件 else 表达式2如果条件为 True,则执行“表达式 1”。否则,执行“表达式 2”。
示例:
# 常规 if-else 赋值
score = 58
if score >= 60:
result = "及格"
else:
result = "不及格"
print(result) # 输出:不及格
# 三元表达式简化(等价于上面的代码)
result = "及格" if score >= 60 else "不及格"
print(result) # 输出:不及格
# 给变量设置默认值
user_input = ""
name = user_input if user_input else "匿名用户"
print(name) # 输出:匿名用户大家在上网购物时,通常都有多种付款方式以供选择。下图提供了 3 钟付款方式:

这时用户要从多个选项中选择一个。
此时,可以使用 if-elif-else 语句,该语句是一个多分支选择语句,通常表现为“如果满足某种条件,则进行某种处理。否则,如果满足另一种条件,则执行另一种处理...”。
if-elif-else 语句的语法格式如下:
if 表达式1:
语句块1
elif 表达式2:
语句块2
elif 表达式3:
语句块3
...
else:
语句块n使用 if-elif-else 语句时,表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式。如果表达式为 True,则执行语句;如果表达式为 False,则跳过该语句,进入下一个 elif 判断。只有在所有表达式都为 False 的情况下,才会执行 else 中的语句。
if-elif-else 语句的流程图如下图:

示例1:根据分数划分等级
score = 85
if score >= 90:
print("等级:优秀") # 条件1:90+ → 优秀
elif score >= 80:
print("等级:良好") # 条件2:80-89 → 良好(执行该分支)
elif score >= 60:
print("等级:及格") # 条件3:60-79 → 及格
else:
print("等级:不及格") # 所有条件不满足 → 不及格运行结果:
等级:良好示例2:根据会员等级和消费金额判断折扣
vip_level = "黄金"
consume = 1200
if vip_level == "钻石" and consume >= 1000:
print("钻石会员,消费达标:享受8折优惠 + 赠品")
elif vip_level == "黄金" and consume >= 800:
print("黄金会员,消费达标:享受8.5折优惠") # 执行该分支
elif vip_level == "白银":
print("白银会员:享受9折优惠")
else:
print("普通会员:无优惠")运行结果:
黄金会员,消费达标:享受8.5折优惠注意:
(1)if-elif-else 语句也支持嵌套,即可以在 if、elif 或 else 中继续编写 if 语句、if-else 语句或 if-elif-else 语句,如下:
age = 22
income = 8000
if age >= 18:
print("你是成年用户")
# 嵌套多分支
if income >= 10000:
print("高消费能力,推荐高端产品")
elif income >= 5000:
print("中等消费能力,推荐性价比产品") # 执行该分支
else:
print("基础消费能力,推荐入门产品")
else:
print("未成年用户,推荐学生专属产品")(2)if-elif-else 是顺序执行的,严格条件必须放在宽松条件前面,否则会被覆盖导致逻辑错误,如下:
错误示例:
# 宽松条件在前,严格条件失效
score = 95
if score >= 80:
print("良好") # 该条件先满足,后续 elif 不会执行
elif score >= 90:
print("优秀") # 无输出(逻辑错误)正确示例:
# 严格条件在前
score = 95
if score >= 90:
print("优秀") # 执行该分支
elif score >= 80:
print("良好")
elif score >= 60:
print("及格")
else:
print("不及格")(3)当“所有条件都不满足时无需处理”,可省略 else,仅保留 if-elif,例如:
order_status = "已取消"
if order_status == "待支付":
print("提醒:订单即将超时,请尽快付款")
elif order_status == "已发货":
print("提醒:订单已发货,预计3天内送达")
# 无else → 订单状态为"已取消"时,无任何输出while 循环的作用是在满足特定条件时,重复执行一段代码(循环体),直到条件不成立为止。它非常适合循环次数不确定的场景,如用户输入数据验证、数据读取到结束等。
while 语法格式如下:
while 条件表达式:
循环体条件表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式。当条件表达式的返回值为 True 时,将执行循环体中的语句,执行完毕后,重新判断条件表达式的返回值,直到条件表达式返回的结果为 False 时,退出循环。
while 循环语句的执行流程图如下:

示例1:简单打印 1~5 到标准输出
# 初始化计数器
count = 1
# 条件:count <= 5 时执行循环
while count <= 5:
print(count)
# 关键:让计数器递增,否则条件永远为True(死循环)
count += 1示例2:要求用户输入1-10之间的数字,否则一直提示
while True:
num = input("请输入1-10之间的数字:")
# 先判断是否为数字
if not num.isdigit():
print("输入错误!请输入数字")
continue
# 转换为整数并判断范围
num = int(num)
if 1 <= num <= 10:
print(f"输入正确:{num}")
break # 输入正确,退出循环
else:
print("输入错误!数字必须在1-10之间")示例3:读取列表直到空
fruits = ["苹果", "香蕉", "橙子"]
while fruits: # 列表非空时条件为True
fruit = fruits.pop() # 取出最后一个元素
print(f"取出:{fruit},剩余:{fruits}")如果条件表达式永远为 True,循环会无限执行(死循环),会占用大量系统资源,甚至导致程序崩溃。例如:
# 条件永远为True,会无限打印
while True:
print("死循环,按Ctrl+C终止")注意:上面代码谨慎执行,避免导致电脑资源耗尽。
while 循环可以搭配 else 子句,当循环条件正常为 False 结束时(不是被 break 终止),会执行 else 里的代码。例如:
(1)循环正常结束,将会执行 else 语句
count = 1
while count <= 3:
print(f"循环执行中:count={count}")
count += 1
else:
print("循环正常结束(条件为False)")(2)如果使用 break 终止了循环,else 不会执行
count = 1
while count <= 3:
print(f"循环执行中:count={count}")
if count == 2:
break
count += 1
else:
print("这段代码不会执行")for 循环是一个计次循环,一般应用在循环次数已知的情况下。通常适用于枚举或遍历序列,以及迭代对象中的元素。语法格式如下:
for 迭代变量 in 对象:
循环体其中:
迭代变量:用于保存读取出的值。
对象:为要遍历或迭代的对象,该对象可以是任何有序的序列对象,如字符串、列表和元组等。
循环体:为一组被重复执行的语句。
for 循环语句的执行流程图如下:

示例1:遍历列表
fruits = ["苹果", "香蕉", "橙子"]
# 遍历列表中的每个元素
for fruit in fruits:
print(f"当前水果:{fruit}")示例2:按字符遍历字符串
text = "Python"
for char in text:
print(char)示例3:遍历数字序列
for i in range(2, 8):
print(i, end=" ")示例4:遍历字典
student = {"name": "小明", "age": 18, "grade": "高一"}
# 遍历键(默认)
for key in student:
print(f"键:{key},值:{student[key]}")
print("---")
# 显式遍历键
for key in student.keys():
print(f"键:{key}")
print("---")
# 遍历键值对(最常用)
for key, value in student.items():
print(f"{key}:{value}")和 while 循环的 else 逻辑一样,当循环正常遍历完所有元素(未被 break 终止) 时,执行 else 代码块。例如:
(1)正常结束将会执行 else 语句
fruits = ["苹果", "香蕉", "橙子"]
for fruit in fruits:
print(f"遍历:{fruit}")
else:
print("循环正常结束(遍历完所有元素)")(2)如果 for 循环被 break 终止,将不会执行 else 语句
fruits = ["苹果", "香蕉", "橙子"]
for fruit in fruits:
if fruit == "香蕉":
break
print(f"遍历:{fruit}")
else:
print("这段代码不会执行")嵌套 for 循环,顾名思义指一个 for 循环内部嵌套另一个 for 循环,常用于处理二维数据(如二维列表)。
示例:打印九九乘法表
# 外层循环控制行数
for i in range(1, 10):
# 内层循环控制每行的列数
for j in range(1, i+1):
print(f"{i}×{j}={i*j}", end=" ")
# 每行结束后换行
print()break 语句可以用来终止当前的循环,包括 while 和 for 在内的所有控制语句。以沿着湖泊骑自行车为例,原计划骑行 5 圈,然而当骑行到第三圈时,自行车出了问题,于是果断停下来,中止骑行。这就相当于使用 break 提前中止了循环。
示例1:中止 while 循环
count = 0
while count < 10:
count += 1 # 计数器加 1
print(f"当前计数:{count}")
# 当计数等于 5 时,执行 break 跳出循环
if count == 5:
print("触发 break,提前终止循环")
break # 立即终止 while 循环,后续代码不再执行
print("循环已结束")示例2:中止 for 循环
numbers = [1, 2, 3, 4, 5, 6, 7, 8]
for num in numbers:
print(f"当前遍历的数字:{num}")
# 满足条件时执行 break
if num == 5:
print("找到数字 5,终止循环")
break
print("循环已结束,执行后续逻辑")continue 语句的作用没有 break 语句强大,它只能中止本次循环而提前进入下一次循环中。依然以沿着湖泊骑自行为例,原计划骑行 5 圈,然而当骑行到第三圈时,自行车出了问题,于是推出去修理,修理完成后,重新开始第四圈骑行。这就相当于使用 continue 跳过了本次循环。
示例1:遍历 1-10,只打印奇数,遇到偶数则跳过
for num in range(1, 11):
# 判断是否为偶数
if num % 2 == 0:
# 跳过当前迭代的剩余代码(即下面的 print 语句)
continue
# 只有奇数会执行到这一步
print(f"奇数: {num}")示例2:从 1 计数到 10,跳过数字 5
count = 1
while count <= 10:
if count == 5:
# 跳过 5 的打印,但必须先让 count 自增,否则会一直卡在 5 导致死循环
count += 1 # 关键:continue 前要更新计数
continue
print(f"当前数字: {count}")
count += 1在 Python3 中,还有一个 pass 语句,表示空语句。它不做任何事情,一般起到占位作用。
示例1,当应用 for 循环输出 1~10(不包括 10)的偶数时,如果不是偶数,则应用 pass 语句占个位置,以方便以后对不是偶数的数进行处理:
for i in range(1,10):
if i%2 == 0: # 判断是否为偶数
print(i, end=' ')
else:
pass # 占位符,不做任何事情运行结果:
2 4 6 8示例2:未实现的函数
# 计划后续实现的函数,先用 pass 占位
def calculate_sum(a, b):
# 暂时不写具体逻辑,用 pass 避免语法错误
pass
# 调用函数不会报错,只是无任何输出/返回值
result = calculate_sum(3, 5)
print(result) # 输出:None示例3:未实现的类
# 定义类但暂时不写属性/方法,用 pass 占位
class Student:
pass
# 可以正常创建类的实例
stu = Student()
stu.name = "小明" # 后续可动态添加属性
print(stu.name) # 输出:小明示例4:未完成的分支语句
score = 85
if score >= 90:
# 后续再实现“优秀”的逻辑
pass
elif score >= 80:
print("良好") # 已实现的逻辑
else:
# 后续再实现“不及格”的逻辑
pass更多 Python3 知识,请继续学习后续章节。