• ⏳ 课程时长: 90 分钟
  • 🎯 教学目标:
    • 🔁 掌握 while 循环:只要条件成立,就一直做。
    • 💀 警惕死循环:如何避免程序永远停不下来。
    • 🛑 学会 break:紧急刹车,跳出循环。
    • ⏭️ 学会 continue:跳过本次,继续下一次。
    • ⚔️ for vs while:知道什么时候用哪种循环。

📖 课程内容

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 分钟)

  1. 🚫 逢 7 过: 使用 while 循环从 1 数到 20。 如果数字是 7 或者 7 的倍数(num % 7 == 0),打印 “过”,否则打印数字。

  2. 📝 输入校验器: 写一个程序,强迫用户输入 “yes”。 只要用户输入的不是 “yes”,就一直打印 “请输入 yes 才能继续!” 并让用户重新输入。


📝 课程总结 (5 分钟)

  1. while 条件::条件为真一直跑。
  2. 避免死循环:记得在循环里改变变量(比如 i = i + 1)。
  3. break:彻底结束循环。
  4. continue:跳过这一轮,进行下一轮。

🏠 课后作业 (5 分钟)

  1. 💰 存钱罐计划: 你的目标是存够 100 元买玩具。 每次输入你存进去的钱(比如 5元、10元)。 程序一直运行,直到总金额 >= 100 元,打印“钱够了!去买玩具吧!”。

  2. 🧮 偶数累加器: 使用 while 循环计算 1 到 100 之间所有偶数的和。

  3. 🕹️ 猜拳游戏 (无限版 – 选做): 写一个石头剪刀布游戏,一局结束后,问用户“再来一局吗?(y/n)”。

    • 如果输入 ‘y’,游戏继续。
    • 如果输入 ‘n’,用 break 退出游戏。

下节课预告: 我们的代码现在像面条一样直直的。如果我想把一段很厉害的代码(比如猜数字游戏)打包起来,下次直接喊它的名字就能用,该怎么办?下节课,我们将学习“代码打包术 – 函数”!📦🔧

下次见,循环猎人们!👋

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。