上一篇我们学会了用变量存储数据,就像给不同物品准备了专属盒子。但如果只会 “存东西”,代码还只是 “静态” 的 —— 比如想让代码根据 “成绩是否及格” 输出不同结果,或者重复处理 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 中最常用的三种 “数据容器”:列表(存多个有序数据)、字典(存键值对数据)和字符串(处理文本),让你轻松管理海量数据。​

如果这篇的案例帮你理解了流程控制,欢迎在评论区分享你的练习成果 —— 比如你用循环打印了什么内容,或者遇到了哪些小问题,我们一起交流~

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐