第4篇:《Python 流程控制——条件判断与循环结构》


【Python零基础入门】第4篇:《Python 流程控制------条件判断与循环结构》

导语 : 在前面的课程中,我们编写的代码都是"一条路走到黑"------从上到下按顺序执行。但在现实生活中,我们常常需要根据情况做出选择(如果下雨就带伞),或者重复做某件事(每天跑3公里)。 今天,我们将学习 Python 的流程控制,让你的程序拥有"判断力"和"执行力",真正活起来!


一、 条件判断:让程序学会"思考"

条件判断的核心是 if 语句。在 Python 中,缩进(通常是4个空格) 是代码块的灵魂,它决定了哪些代码属于哪个条件分支。

1. 单分支:if

当条件为真(True)时,执行缩进的代码块。

python 复制代码
age = 20
if age >= 18:
    print("你已经成年了,可以考取驾照!")
    print("欢迎加入成年人的世界。")
# 注意:这两行 print 都有缩进,它们同属于 if 代码块

2. 双分支:if-else

非此即彼,条件为真执行 if,否则执行 else

python 复制代码
score = 55
if score >= 60:
    print("恭喜,考试及格!")
else:
    print("很遗憾,考试不及格,需要补考。")

3. 多分支:if-elif-else

当有多个条件需要判断时,使用 elif(else if 的缩写)。注意:elif 可以有多个,但 else 最多只能有一个,且必须放在最后。

python 复制代码
score = 85

if score >= 90:
    grade = "A (优秀)"
elif score >= 80:
    grade = "B (良好)"
elif score >= 60:
    grade = "C (及格)"
else:
    grade = "D (不及格)"

print(f"你的成绩等级是:{grade}")

⚠️ 避坑警告 :在条件判断中,千万不要把比较运算符 == 写成赋值运算符 =

  • if x == 5: (正确:判断 x 是否等于 5)
  • if x = 5: (错误:会导致 SyntaxError 语法错误)

二、 循环结构:让程序不知疲倦地"重复"

Python 提供了两种循环方式:while 循环和 for 循环。

1. while 循环(条件循环)

只要条件为 True,就会一直执行下去。务必确保条件最终会变为 False,否则会陷入"死循环"!

python 复制代码
count = 1
while count <= 3:
    print(f"这是第 {count} 次循环")
    count += 1  # ⚠️ 别忘了更新变量,否则死循环!

print("循环结束!")

2. for 循环(遍历循环)

for 循环用于遍历任何可迭代对象 (如字符串、列表,以及 range 生成的序列)。它是 Python 中最常用的循环。

遍历字符串:

python 复制代码
for char in "Python":
    print(char, end=" ")  # 输出: P y t h o n 

配合 range() 函数使用: range(start, stop, step) 用于生成一个整数序列。注意:包含 start,但不包含 stop(左闭右开)。

python 复制代码
# 打印 0 到 4
for i in range(5):
    print(i)  # 输出: 0, 1, 2, 3, 4

# 打印 1 到 9 的奇数 (步长为2)
for i in range(1, 10, 2):
    print(i)  # 输出: 1, 3, 5, 7, 9

三、 循环控制语句:精准掌控循环

有时候我们需要在循环中途进行干预,这就需要用到以下三个关键字:

关键字 作用 形象比喻
break 立即终止整个循环,跳出循环体。 直接摔盘子,不干了!
continue 跳过本次循环剩余的代码,直接进入下一次循环。 跳过这道菜,吃下一道!
pass 空语句,占位符,什么都不做。 假装在思考,其实啥也没干。

代码演示:

python 复制代码
# 演示 break 和 continue
for i in range(1, 6):
    if i == 2:
        continue  # 当 i=2 时,跳过本次,不打印
    if i == 4:
        break     # 当 i=4 时,直接终止整个循环
    
    print(f"当前数字是: {i}")

# 输出结果:
# 当前数字是: 1
# 当前数字是: 3

四、 实战演练:猜数字小游戏

让我们把条件判断和循环结合起来,写一个经典的"猜数字"游戏。程序会随机生成一个 1-100 的数字,玩家有 5 次机会去猜。

python 复制代码
import random  # 导入随机数模块

# 1. 生成 1 到 100 之间的随机整数
secret_number = random.randint(1, 100)
max_attempts = 5
attempts = 0

print("🎮 欢迎来到猜数字游戏!")
print(f"我已经想好了一个 1 到 100 之间的数字,你有 {max_attempts} 次机会。")

# 2. 使用 while 循环控制游戏流程
while attempts < max_attempts:
    # 获取用户输入并转换为整数
    guess = int(input(f"\n[第 {attempts + 1} 次] 请输入你猜的数字:"))
    attempts += 1
    
    # 3. 条件判断
    if guess < secret_number:
        print("📉 太小了!再往大了猜。")
    elif guess > secret_number:
        print("📈 太大了!再往小了猜。")
    else:
        print(f"🎉 恭喜你,猜对了!答案就是 {secret_number}。")
        print(f"你总共猜了 {attempts} 次。")
        break  # 猜对了,跳出循环

# 4. 循环正常结束(没有触发 break)的情况
else:
    print(f"\n💀 很遗憾,{max_attempts} 次机会用光了!")
    print(f"正确的数字其实是:{secret_number}")

💡 进阶知识点 :在 Python 中,whilefor 循环后面可以跟一个 else 块。如果循环是正常结束 的(没有被 break 打断),就会执行 else 块。这在处理"搜索/查找"类逻辑时非常优雅!


五、 新手避坑指南

常见错误/疑惑 原因分析 正确做法
IndentationError 缩进不一致,或者该缩进的地方没缩进。 严格使用 4个空格 进行缩进,不要用 Tab 键混用。
死循环 while 循环的条件永远为 True,且内部没有改变条件的代码或 break 检查循环体内是否有更新控制变量的代码(如 i += 1)。
range 边界漏数 以为 range(1, 5) 会包含 5。 牢记 range左闭右开 ,包含起点,不包含终点。应写为 range(1, 6)
多分支逻辑漏洞 if-elif 顺序写反,导致后面的条件永远无法触发。 条件判断应遵循从严格到宽泛(或从小到大/从大到小)的顺序。

六、 本篇小结与下期预告

📝 核心知识点回顾

  1. 条件判断if-elif-else 结构,依靠缩进 划分代码块,注意 === 的区别。
  2. 循环结构while 适合条件循环,for 适合遍历循环;掌握 range() 函数的用法。
  3. 控制语句break 跳出循环,continue 跳过当次,pass 用于占位。
  4. 循环的 else :循环未被 break 打断时执行,是 Python 的特色语法。

🚀 下期预告

目前我们只能把数据存在一个个独立的变量里,如果要存全班 50 个同学的成绩怎么办? 在《第5篇:数据容器------列表、元组、字典与集合》中,我们将:

  • 学习 Python 最核心的四大数据结构(List, Tuple, Dict, Set)。
  • 掌握数据的增、删、改、查操作。
  • 了解它们各自的应用场景与性能差异。

💬 互动时间: 你在玩"猜数字"游戏时,最少用了几次猜中?在写循环时有没有不小心搞出过"死循环"?欢迎在评论区分享你的"翻车"或"高光"经历,博主会逐一回复!


本文属于【Python零基础入门】系列教程,欢迎关注博主,订阅专栏,带你从零开始系统掌握 Python!