从零学 Python 系列(三):掌握流程控制,让代码学会 “做判断” 和 “重复做”
上一篇我们学会了用变量存储数据,就像给不同物品准备了专属盒子。但如果只会 “存东西”,代码还只是 “静态” 的 —— 比如想让代码根据 “成绩是否及格” 输出不同结果,或者重复处理 100 条数据,就需要 “流程控制” 来帮忙。这篇就带你掌握 Python 的两大流程控制工具:条件判断(if) 和循环(for/while),让代码从此有 “逻辑思维”。
一、条件判断:让代码像 “做选择题” 一样决策
生活中我们常做判断:“如果今天下雨,就带伞;否则就穿防晒衣”。Python 的if语句就是模拟这种逻辑,让代码根据不同条件执行不同操作。
1. 最基础的 if 语句:满足条件才执行
先看一个简单场景:判断考试成绩是否及格(满分 100,60 分及格)。如果及格,就打印 “恭喜,及格啦!”。
代码示例:
# 用变量存储成绩
score = 75
# 条件判断:如果score >= 60,就执行下面的代码
if score >= 60:
print("恭喜,及格啦!") # 注意:这里要缩进(按Tab键),代表属于if的代码块
运行结果:
恭喜,及格啦!
- 关键细节:
- 条件后面必须加冒号:,告诉 Python “接下来是满足条件要执行的代码”;
- 属于if的代码要缩进(通常按 Tab 键,或 4 个空格),这是 Python 的 “规矩”—— 缩进不对,代码会报错;
- 如果把score改成 50,条件score >= 60不成立,print语句就不会执行,运行后没有任何输出。
2. if-else 语句:“二选一” 的判断
如果想实现 “及格就恭喜,不及格就提醒”,就需要if-else—— 满足条件走if,不满足走else,两者必选其一。
代码示例:
score = 55
if score >= 60:
print("恭喜,及格啦!")
else:
print("加油,下次再努力!") # else后面也要加冒号,代码同样要缩进
运行结果:
加油,下次再努力!
- 生活类比:
就像 “如果公交车来了,就上车;否则就继续等”,没有第三种情况,代码会根据条件自动 “二选一”。
3. if-elif-else 语句:“多选一” 的判断
如果需要判断多个条件(比如成绩分 “优秀、良好、及格、不及格”),就用if-elif-else——elif可以有多个,代表 “否则如果”,最后用else收尾(可选)。
代码示例:
score = 88
if score >= 90:
print("优秀!")
elif score >= 80: # 前面条件不满足时,才判断这个条件
print("良好!")
elif score >= 60:
print("及格!")
else: # 所有条件都不满足时执行
print("不及格,加油!")
运行结果:
良好!
- 避坑提醒:
elif的顺序很重要!比如不能把score >= 60放在最前面 —— 如果score=88,会先满足score >=60,直接打印 “及格”,后面的条件就不会判断了。一定要按 “从严格到宽松” 的顺序写条件。
二、循环语句:让代码学会 “重复做一件事”
如果需要重复执行某段代码(比如打印 10 次 “我爱 Python”,或者计算 1 到 100 的和),手动写 100 遍显然不现实。这时循环就能帮你 “一键重复”,Python 里最常用的是for循环和while循环。
1. for 循环:“按固定次数” 重复(最常用)
for循环适合 “知道要重复多少次” 的场景,比如 “重复 5 次”“遍历列表里的每一个元素”。搭配range()函数,还能轻松生成连续的数字序列。
场景 1:重复打印指定次数
需求: 打印 5 次 “我爱 Python,第 X 次”(X 从 1 到 5)。
代码示例:
# range(1, 6)会生成1、2、3、4、5这5个数字(左闭右开,所以结束值要+1)
for i in range(1, 6):
print(f"我爱Python,第{i}次") # f-string:用{i}直接把变量值嵌入字符串
运行结果:
我爱Python,第1次
我爱Python,第2次
我爱Python,第3次
我爱Python,第4次
我爱Python,第5次
场景 2:遍历列表里的每一个元素
上一篇我们提到了列表(用[]包裹的多个数据),for循环可以逐个取出列表里的元素,不用手动索引。
代码示例:
# 用列表存储3个水果
fruits = ["苹果", "香蕉", "橙子"]
# 遍历列表,每次把一个元素赋值给fruit
for fruit in fruits:
print(f"我喜欢吃{fruit}")
运行结果:
我喜欢吃苹果
我喜欢吃香蕉
我喜欢吃橙子
2. while 循环:“按条件” 重复(满足条件就继续)
while循环适合 “不知道要重复多少次,只知道重复的条件” 的场景,比如 “只要用户输入的不是‘退出’,就继续询问”。
场景:让用户反复输入,直到输入 “退出”
代码示例:
# 初始值设为非“退出”,让循环先开始
user_input = ""
# 只要user_input不是“退出”,就继续循环
while user_input != "退出":
user_input = input("请输入内容(输入“退出”结束):") # input()获取用户输入
print(f"你输入的是:{user_input}")
运行效果:
请输入内容(输入“退出”结束):Hello
你输入的是:Hello
请输入内容(输入“退出”结束):Python
你输入的是:Python
请输入内容(输入“退出”结束):退出
你输入的是:退出
- 避坑提醒:
写while循环一定要注意 “循环终止条件”!比如如果忘了更新user_input,循环会一直执行(无限循环),这时需要按Ctrl+C强制停止。
3. 循环里的 “小助手”:break 和 continue
有时候需要在循环中 “提前退出” 或 “跳过某次循环”,这时候break和continue就很有用。
break:直接终止整个循环
场景: 遍历 1 到 10 的数字,遇到 5 就停止。
代码示例:
for i in range(1, 11):
if i == 5:
break # 遇到5,直接终止循环
print(i)
运行结果:
1
2
3
4
continue:跳过当前次循环,继续下一次
场景: 遍历 1 到 5 的数字,跳过 3,打印其他数字。
代码示例:
for i in range(1, 6):
if i == 3:
continue # 跳过3,不执行下面的print,直接进入下一次循环
print(i)
运行结果:
1
2
4
5
三、实战练习:用流程控制写一个 “简易成绩查询系统”
学完条件判断和循环,我们来综合运用,写一个能反复查询成绩等级的小系统:用户输入成绩,系统输出等级;输入 “-1” 就退出。
完整代码:
print("=== 简易成绩查询系统 ===")
print("提示:输入成绩(0-100)查询等级,输入-1退出系统\n")
while True: # True代表“无限循环”,需要用break手动终止
# 获取用户输入,并转成整数(input()默认获取的是字符串)
score_input = input("请输入成绩:")
score = int(score_input) # 把字符串转成整数
# 判断是否退出
if score == -1:
print("已退出系统,再见!")
break # 终止循环
# 判断成绩是否合法
if score < 0 or score > 100:
print("输入错误!请输入0-100之间的成绩\n")
continue # 跳过后面的等级判断,重新让用户输入
# 判断成绩等级
if score >= 90:
level = "优秀"
elif score >= 80:
level = "良好"
elif score >= 60:
level = "及格"
else:
level = "不及格"
print(f"你的成绩等级是:{level}\n")
运行效果:
=== 简易成绩查询系统 ===
提示:输入成绩(0-100)查询等级,输入-1退出系统
请输入成绩:85
你的成绩等级是:良好
请输入成绩:105
输入错误!请输入0-100之间的成绩
请输入成绩:58
你的成绩等级是:不及格
请输入成绩:-1
已退出系统,再见!
- 代码解析:
这里用了while True无限循环,配合break实现 “按需退出”;用if判断成绩合法性,配合continue跳过无效输入;最后用if-elif-else判断等级,把前面学的知识点全用上了。
下一篇预告:列表、字典与字符串操作
今天我们让代码有了 “判断能力” 和 “重复能力”,但如果需要存储大量数据(比如 100 个学生的成绩),只用单个变量就不够了。下一篇会带你学习 Python 中最常用的三种 “数据容器”:列表(存多个有序数据)、字典(存键值对数据)和字符串(处理文本),让你轻松管理海量数据。
如果这篇的案例帮你理解了流程控制,欢迎在评论区分享你的练习成果 —— 比如你用循环打印了什么内容,或者遇到了哪些小问题,我们一起交流~
更多推荐


所有评论(0)