计算机科学 4 第 15-18 关
NESTED LOOPS
🪐

认识嵌套循环

Nested Loops

🌀 外层循环
🔄 内层循环

本节课关卡

扣哒世界 · 计算机科学4 · Python · 第15–18关

Python · 本节课关卡

15 · 游魂

先读关卡目标,观察地图,再运用本课知识。

16 · 潜伏

先读关卡目标,观察地图,再运用本课知识。

17 · 优待

先读关卡目标,观察地图,再运用本课知识。

18 · Sarven 牧羊人

先读关卡目标,观察地图,再运用本课知识。

学习路线:读目标 → 看图解 → 写代码 → 运行检查

📺

剧集比喻:季与集

嵌套循环就是:一个循环里面又套了另一个循环。

外层循环 (Outer): 就像动画片的“第 1 季、第 2 季...”。
内层循环 (Inner): 就像每一季里的“第 1 集、第 2 集...”。

每开始新的一季(外层跑一次),都要把那一季的所有集数看完(内层跑完),才能进入下一季。

Season 1
Episode 1
📐

基本结构 (Syntax)

while 外层条件:
  # 外层做的事
  while 内层条件:
    # 内层反复做的事
    do_something()

注意缩进 (Indentation)!
多缩进一层的代码,就属于里面的循环。

月亮(内)绕着地球,地球(外)绕着太阳
👻

任务一:打倒每个敌人

外层: 遍历敌人列表 (一个个点名)。
内层: 攻击当前敌人直到死。

while index < len(enemies):
  enemy = enemies[index]
  # 死磕到底!
  while enemy.health > 0:
    attack(enemy)
  index += 1
-10
💀
💎

任务二:靠近物品

外层: 遍历物品列表。
内层: 只要距离还远,就继续走。

while itemIndex < len(items):
  item = items[itemIndex]
  # 没走到就一直走
  while distanceTo(item) > 2:
    moveXY(item.pos.x, item.pos.y)
  itemIndex += 1
就像你在追一个泡泡,只要没抓到,就一直追。
🏃 ... 5m ... 3m ... 💎

Inner Loop: Distance > 2

🔍

条件嵌套:只打萨满

我们在循环里加一个 if,只处理特定类型的敌人。

外层:遍历所有
while i < len(enemies):
过滤:只选萨满
if enemy.type == "shaman":
内层:死磕
while enemy.health > 0:
  attack(enemy)
🐂
🧙‍♂️
🐂
TARGET LOCKED
✖️

嵌套循环 ≈ 乘法

如果有 3 个敌人,每个要打 4 下。

3 (外层) × 4 (内层)
= 12 次攻击

这就是为什么嵌套循环做事情特别多!要注意效率哦。

💀
🗡️🗡️🗡️🗡️
💀
🗡️🗡️🗡️🗡️
💀
🗡️🗡️🗡️🗡️
🎓

时空领主口诀

"大圈套小圈,层层往下钻。
缩进要看准,谁在谁里面。"
"外层管一个个,内层管到底。
变量要更新,否则死循环!"
🌌

我的知识宝藏 · 一页复习

扣哒世界 · 计算机科学4 · Python · 第15–18关

Python · 知识点图
关键字方法 / 函数字符串数字

剧集比喻:季与集

嵌套循环就是:一个循环里面又套了另一个循环。

基本结构

注意缩进 (Indentation)! 多缩进一层的代码,就属于里面的循环。

任务一:打倒每个敌人

外层: 遍历敌人列表 (一个个点名)。 内层: 攻击当前敌人直到死。

index += 1

任务二:靠近物品

外层: 遍历物品列表。 内层: 只要距离还远,就继续走。

itemIndex += 1

条件嵌套:只打萨满

我们在循环里加一个 if,只处理特定类型的敌人。

嵌套循环 ≈ 乘法

如果有 3 个敌人,每个要打 4 下。

本节课关卡:15. 游魂;16. 潜伏;17. 优待;18. Sarven 牧羊人