这套课程按知识依赖排列。本篇的前置知识是:第 16、18 篇。学完后,你应该能够读取二维数据并控制嵌套层级。
本篇要解决的问题
本篇只处理“嵌套判断与嵌套循环怎样保持清晰”这一件事。示例基于 Python 3.14.6,在 macOS 环境核验;除明确标注的终端命令外,代码本身只使用 Python 标准能力。
先看清一个容易误解的细节
外层循环取得一行后,内层循环会完整处理这一行的各列;内层结束后,外层才取得下一行。
核心概念
- 每增加一层嵌套,阅读成本都会上升。
- 内层逻辑较长时,学习完函数后应考虑提取函数。
- 变量名使用
row、cell等层级含义,避免全部写成i、j。
跟着示例运行
把下面代码保存到本课脚本并运行:
table = [["A1", "A2"], ["B1", "B2"]]
for row in table:
for cell in row:
print(cell)
print("一行结束")
预期结果:
A1
A2
一行结束
B1
B2
一行结束
输出中包含环境路径、集合元素或日志格式时,具体文字和顺序可能随本机环境变化;判断是否成功应以本篇说明的关键结果为准。
按执行顺序拆开看
- 外层变量
row先引用第一行列表,内层才依次处理A1和A2。 - 内层结束后输出“一行结束”,外层再进入第二行;这解释了输出中的分组顺序。
再看一个具体细节
二维列表的输出顺序可以展开成一条时间线。
内层必须走完当前行,外层才移动到下一行;这就是嵌套循环的执行顺序。
初学者容易混淆的地方
- 把两层循环变量都叫
item或i,难以确认当前层级。 - 无限增加嵌套层数。逻辑变长后应在第 22 篇函数知识基础上提取职责。
练习
- 打印一个 2×3 数字表。
- 在内层增加条件,只输出大于 3 的元素。
练习应先独立完成,再通过增加 print 输出或检查文件内容观察中间状态。当前课程尚未讲到的能力,不要求提前搜索复杂写法。
本篇边界
本篇目标是读取二维数据并控制嵌套层级。没有展开的高级机制会放到后续课程;先确保能够解释示例中每一行代码,再进入下一篇。
相关文章
01|Python 程序从源码到输出经历了什么
面向按顺序学习 Python 的初学者,本篇在零基础上,帮助读者理解源代码、解释器和输出之间的关系。
02|在 macOS 安装并确认 Python 3 环境
面向按顺序学习 Python 的初学者,本篇在第 01 篇知识上,帮助读者在 macOS 中确认 Python 3.14 和 pip 是否可用。
03|交互式解释器和 Python 脚本怎么选择
面向按顺序学习 Python 的初学者,本篇在第 02 篇知识上,帮助读者根据任务选择 REPL 或 `.py` 脚本。
04|建立第一个 Python 项目目录
面向按顺序学习 Python 的初学者,本篇在第 03 篇知识上,帮助读者理解当前目录并正确运行项目脚本。

