Python 小课堂

嵌套循环

循环里面再套一个循环,就像「找教室座位」:先走到某一排,再把这一排的每个座位都看一遍。

1先用生活想一想

单个循环像「沿着一条走廊走」;嵌套循环像「一排一排地找座位」——外层管「排」,内层管「座位」。

🏫 教室找人:外层是排,内层是座

老师说:「从第 1 排开始,把这一排的每个座位都叫一遍名字;叫完这一排,再去第 2 排……」

外层循环 = 第几排 内层循环 = 第几个座位

点下面按钮,看电脑怎么「一排一排」找人:

准备好了!外层先选一排,内层再把这一排的座位全走完。

2代码长什么样

嵌套循环就是:一个 for 里面,又写了一个 for。注意缩进——内层循环比外层多缩进 4 个空格。

只有一层循环

# 只走一排:3 个座位 for seat in range(1, 4): print("座位", seat)

会打印:座位 1、座位 2、座位 3。一共 3 次。

两层嵌套循环

# 3 排 × 每排 3 个座位 for row in range(1, 4): for seat in range(1, 4): print(row, "排", seat, "座")

外层走 1 步,内层要完整跑完一轮。总次数 = 3 × 3 = 9 次。

3一步一步看它怎么跑

这是最重要的一课:外层换一次值,内层就要从开头再完整跑一遍。点「下一步」,亲眼看变量怎么变。

# 外层 i:1 → 2 → 3 # 内层 j:每次都是 1 → 2 → 3 for i in range(1, 4): for j in range(1, 4): print(i, j)
还没开始。点「下一步」,先进入外层循环,i 变成 1。
橙色 = 当前外层 i 绿色 = 已打印过的 (i, j)

4动手玩一玩

拖动滑块,立刻看到嵌套循环画出来的图案。想一想:改变「行数」和「每行个数」,谁是外层、谁是内层?

⭐ 星星三角形

行数(外层) 5
for i in range(1, n + 1): for j in range(i): print("*", end="") print()

第 i 行要印 i 颗星:外层决定「第几行」,内层决定「这一行印几颗」。

✖️ 迷你乘法表

最大数(外层到几) 5

外层 i 固定时,内层 j 从 1 走到 i,所以每一行越来越长。

5只要记住三句话

考试、写作业卡壳时,先默念这三句,思路马上就清楚了。

①

外层走一步

内层就要从头到尾完整跑完一轮,再让外层走下一步。

②

总次数相乘

如果外层 3 次、内层 4 次,一共打印约 3 × 4 = 12 次(三角形那种会少一点)。

③

缩进要对齐

内层的 for 比外层多缩进;真正做事的 print 通常在最里面那一层。

6小测验 · 看你学会了没

每题点一个答案,马上告诉你对不对。三题都对,嵌套循环就算入门啦!

1. 外层循环跑 1 次时,内层循环会怎样?

2. 下面代码一共会 print 多少次?
for i in range(2):
  for j in range(3):
    print(i, j)

3. 画星星三角形时,谁更适合当「外层循环」?

答对:0 / 3