- ⏳ 课程时长: 90 分钟
- 🎯 教学目标:
- 🔁 掌握
while循环:只要条件成立,就一直做。 - 💀 警惕死循环:如何避免程序永远停不下来。
- 🛑 学会
break:紧急刹车,跳出循环。 - ⏭️ 学会
continue:跳过本次,继续下一次。 - ⚔️
forvswhile:知道什么时候用哪种循环。
- 🔁 掌握
📖 课程内容
1. 🤔 引入:直到…才停止 (10 分钟)
生活中有得事是有次数的(比如做 10 个俯卧撑),但更多事是看状态的:
- 一直 吃饭,直到 吃饱了。🍚
- 一直 充电,直到 电量 100%。🔋
- 一直 输入密码,直到 密码正确。🔐
这就是 while (当…的时候) 的逻辑:只要条件是真的,我就一直做!
2. 📜 “死缠烂打”的咒语:while 结构 (20 分钟)
-
语法结构:
while 条件: # 只要上面的条件是 True,这里就会一直重复执行 # (记得缩进!) # (重要:这里必须有改变条件的代码!) -
🌰 栗子:吃包子
count = 1 while count <= 5: # 只要吃的数量小于等于 5,就继续吃 print(f"我正在吃第 {count} 个包子...") count = count + 1 # 这句超重要!吃完一个要记账,不然永远吃第1个 print("吃饱了,不吃了!")
3. 💀 恐怖的陷阱:无限循环 (Infinite Loop) (10 分钟)
新手最容易犯的错:忘记改变条件!
# 🚫 请勿模仿 (或者做好强制关闭的准备)
i = 1
while i < 10:
print("我停不下来啦!!!")
# 这里少写了 i = i + 1,i 永远是 1,永远小于 10
这就是死循环。电脑会疯狂工作直到卡死。
- 🆘 救命键: 如果不小心写了死循环,按
Ctrl + C强制停止程序!
4. 🎮 循环遥控器:Break 和 Continue (25 分钟)
有时候我们需要在循环中间插手,这时候需要两个“遥控按钮”。
-
🛑 按钮 1:
break(紧急刹车) 直接终止整个循环,跳出去执行后面的代码。- 场景: 挖宝藏,只要挖到了,就收工回家,不用把地全挖一遍。
print("--- 寻宝开始 ---") while True: # 这是一个死循环,一直挖 action = input("挖到了吗?(y/n): ") if action == "y": print("🎉 挖到宝藏了!回家!") break # 碰到 break,直接跳出 while 循环 print("💦 继续挖...") -
⏭️ 按钮 2:
continue(跳过本次) 跳过这一次循环剩下的代码,直接回到开头进行下一次判断。- 场景: 吃苹果,拿到一个烂苹果,扔掉(跳过吃的过程),直接拿下一个。
print("--- 吃苹果 ---") i = 0 while i < 5: i = i + 1 if i == 3: print(f"第 {i} 个苹果有虫子,扔掉!🐛") continue # 跳过下面的代码,直接回到 while 开头 print(f"吃掉第 {i} 个苹果 🍎")
5. ✨ 多元化场景实战 (20 分钟)
场景 A:🔢 猜数字游戏 (经典应用)
电脑想好一个数字,你一直猜,直到猜对为止。你不知道要猜几次,所以必须用 while。
import random
secret = random.randint(1, 100)
guess = 0 # 先定义一个不等于 secret 的数
print("我想好了一个 1-100 的数字,你猜猜?")
while guess != secret: # 只要没猜对,就一直循环
guess = int(input("请输入你的猜测: "))
if guess > secret:
print("猜大了!👇")
elif guess < secret:
print("猜小了!👆")
else:
print("🎉 恭喜你!猜对了!")
场景 B:🔐 密码输入与锁定
限制只有 3 次机会,用完就锁定。(结合 break)。
chance = 3
while chance > 0:
pwd = input(f"请输入密码 (剩余 {chance} 次机会): ")
if pwd == "123456":
print("✅ 登录成功!")
break # 成功了就跳出,不需要再输入了
else:
print("❌ 密码错误")
chance = chance - 1
if chance == 0:
print("🚫 机会用完,账号已锁定!")
6. ⚔️ For vs While:谁更强?(5 分钟)
| 特性 | For 循环 | While 循环 |
|---|---|---|
| 适用场景 | 知道次数 (跑10圈) | 不知次数,看条件 (跑到累) |
| 遍历数据 | 强项 (遍历列表/字符串) | 可以做,但比较麻烦 |
| 风险 | 很少死循环 | 容易死循环 |
| 口诀 | 定数用 For | 不定用 While |
💪 课堂大练兵 (10 分钟)
-
🚫 逢 7 过: 使用
while循环从 1 数到 20。 如果数字是 7 或者 7 的倍数(num % 7 == 0),打印 “过”,否则打印数字。 -
📝 输入校验器: 写一个程序,强迫用户输入 “yes”。 只要用户输入的不是 “yes”,就一直打印 “请输入 yes 才能继续!” 并让用户重新输入。
📝 课程总结 (5 分钟)
while 条件::条件为真一直跑。- 避免死循环:记得在循环里改变变量(比如
i = i + 1)。 break:彻底结束循环。continue:跳过这一轮,进行下一轮。
🏠 课后作业 (5 分钟)
-
💰 存钱罐计划: 你的目标是存够 100 元买玩具。 每次输入你存进去的钱(比如 5元、10元)。 程序一直运行,直到总金额 >= 100 元,打印“钱够了!去买玩具吧!”。
-
🧮 偶数累加器: 使用
while循环计算 1 到 100 之间所有偶数的和。 -
🕹️ 猜拳游戏 (无限版 – 选做): 写一个石头剪刀布游戏,一局结束后,问用户“再来一局吗?(y/n)”。
- 如果输入 ‘y’,游戏继续。
- 如果输入 ‘n’,用
break退出游戏。
下节课预告: 我们的代码现在像面条一样直直的。如果我想把一段很厉害的代码(比如猜数字游戏)打包起来,下次直接喊它的名字就能用,该怎么办?下节课,我们将学习“代码打包术 – 函数”!📦🔧
下次见,循环猎人们!👋

评论(0)