欢迎来到「Python学习与交流」!在前面的课程中,我们让程序学会了说话、倾听和思考。但如果你需要打印 100 次“我爱吃苹果”,难道要复制粘贴 100 行 print 吗?当然不!
今天,我们将赋予程序“重复执行”的超能力——学习 for 循环和 while 循环。掌握了它们,你就能用几行代码搞定成千上万次的重复操作。
一、for 循环:遍历已知序列
当你明确知道要循环多少次,或者要遍历一个集合(如列表、字符串、数字范围)时,for 循环是首选。
1. 遍历数字范围:range()
range() 函数可以生成一个数字序列,常与 for 搭配使用:
# 打印 0 到 4(注意:不包含 5)for i in range(5): print(f"第 {i+1} 次:我爱Python!")
💡 range() 小技巧:
range(5) → 0,1,2,3,4range(1, 6) → 1,2,3,4,5(从1开始,到6之前结束)range(0, 10, 2) → 0,2,4,6,8(步长为2)
2. 遍历字符串/列表
fruits = ["苹果", "香蕉", "橙子"]for fruit in fruits: print(f"我喜欢吃{fruit}")
二、while 循环:满足条件就继续
当你不知道要循环多少次,只知道“什么时候该停”时,就用 while。它会一直执行,直到条件变为 False。count = 0while count < 3: print(f"当前计数:{count}") count += 1 # ⚠️ 别忘了更新条件,否则会无限循环!
三、循环控制:break 与 continue
有时候我们需要在循环中途“干预”一下:
- break:立即跳出整个循环,不再执行后续迭代。
- continue:跳过本次循环的剩余代码,直接进入下一次迭代。
for i in range(5): if i == 2: continue # 跳过 2,不打印 if i == 4: break # 遇到 4 直接退出循环 print(i) # 输出:0 1 3
四、实战:猜数字小游戏
让我们把四节课的知识融会贯通,写一个完整的互动游戏!
import randomsecret = random.randint(1, 10)attempts = 0print("=== 猜数字游戏(1-10)===")while True: guess = int(input("请输入你猜的数字:")) attempts += 1 if guess == secret: print(f"🎉 恭喜!你用了 {attempts} 次猜对了!") break # 猜对后退出循环 elif guess > secret: print("太大了,再试试!") else: print("太小了,再试试!")
五、新手避坑指南
- 缩进错误:循环体内的代码必须统一缩进(推荐4空格),缩进不对会导致逻辑完全错乱。
- 忘记更新 while 条件:这是导致死循环的头号原因,每次写完
while 都要检查条件变量是否在变化。 - 混淆 for 和 while:能用
for 的场景优先用 for,它更安全、更简洁;只有当循环次数不确定时才用 while。 - range 边界问题:
range(n) 生成的数字是 [0, n),不包含 n,这是新手最常犯的 off-by-one 错误。
六、总结
- for 循环:适合遍历已知序列或固定次数重复。
- while 循环:适合条件驱动的未知次数重复。
- break / continue:精准控制循环的执行流程。
- 核心原则:优先用 for,慎用 while,时刻警惕死循环。
至此,你已经掌握了 Python 最核心的四大基础语法:输出、输入、判断、循环!下一课,我们将进入全新的篇章——函数,把代码封装成可复用的“工具”。