五、嵌套循环学习笔记

五、嵌套循环学习笔记

2026-02-19
Python基础
type
Post
status
Published
date
Feb 19, 2026
slug
python-nested-loops-notes-5
summary
当我需要打印九九乘法表、处理二维表格时,才发现一个循环根本搞不定!这时候嵌套循环就派上用场了——它就是循环里面再套一个循环,让代码能够处理更复杂的多维问题。
tags
Python的逻辑处理
category
Python基础
icon
password
💡 学习感悟:当我需要打印九九乘法表、处理二维表格时,才发现一个循环根本搞不定!这时候嵌套循环就派上用场了——它就是循环里面再套一个循环,让代码能够处理更复杂的多维问题。

1. 为什么需要嵌套循环?

我的理解

在没有嵌套循环之前,如果要打印一个 3x3 的星号矩阵,我只能这样写:
这样写不仅代码冗长,而且如果要改变大小,需要修改很多地方!
嵌套循环的出现解决了这个问题——它让我们可以用两层循环分别控制行和列。
📝 我的理解:嵌套循环就像是时钟的时针和分针——时针走一格,分针要走完整的一圈。外层循环每执行一次,内层循环就会完整地执行一遍。

2. 嵌套循环的基本语法

2.1 for-for 嵌套

最常用的一种嵌套形式,两个 for 循环嵌套。

执行流程

简单示例

📝 我的理解:从输出可以看到,外层循环 i=0 时,内层循环 j 完整地执行了 0 和 1;然后外层 i=1,内层又完整执行一遍...这就是嵌套循环的执行特点!

2.2 while-while 嵌套

两个 while 循环嵌套,需要注意循环条件的更新。

示例

⚠️ 踩坑记录:使用 while 嵌套时,一定要记得更新循环变量!我曾经忘记写 j += 1,结果程序陷入了无限循环,电脑风扇狂转...😅

2.3 for-while 混合嵌套

for 循环和 while 循环可以相互嵌套。

3. 嵌套循环的执行次数

3.1 执行次数计算

📝 我的理解:嵌套循环的总执行次数 = 外层循环次数 × 内层循环次数。所以嵌套循环的效率要特别注意,如果两层都是 100 次,那就是 10000 次执行!

3.2 多层嵌套

三层嵌套循环执行流程图

4. 嵌套循环中的 break 和 continue

4.1 break 的作用范围

break 只跳出当前所在的循环,不会影响外层循环。
📝 我的理解:从输出可以看到,虽然内层循环被 break 了,但外层循环还在继续执行。break 就像是在当前这一层循环里按下了停止键,不会影响外面那层。

4.2 continue 的作用范围

continue 也只影响当前所在的循环

4.3 跳出多层循环

如果需要跳出多层循环,可以使用标志变量函数
📝 我的理解:刚开始我想用 break 跳出两层循环,结果发现不行!后来学会了用标志变量或者把循环放到函数里用 return,这才是正确的做法。

5. 实际应用案例

综合应用流程图

5.1 打印九九乘法表

九九乘法表执行流程图
📝 我的理解:九九乘法表的关键是内层循环的范围要随着外层变化——第 i 行只打印 i 个式子,所以内层是 range(1, i + 1)

5.2 打印图形图案

📝 我的理解:打印图形的难点在于找规律。金字塔每行的空格数是 height - i,星号数是 2*i - 1。找到规律后,用嵌套循环就很容易实现了!

5.3 冒泡排序算法

冒泡排序执行流程图
📝 我的理解:冒泡排序的核心思想是相邻元素两两比较,大的往后冒泡。外层循环控制轮数,内层循环负责每轮的比较。加上 swapped 标志可以提前结束,这是优化点!

5.4 遍历二维列表

5.5 查找质数

查找质数执行流程图
📝 我的理解:查找质数时,内层循环只需要检查到 sqrt(num) 就可以了,这是一个重要的优化!如果 num 有因子,一定有一个小于等于它的平方根。

6. 嵌套循环的优化

6.1 减少循环次数

6.2 使用列表推导式

📝 我的理解:列表推导式可以把嵌套循环写得非常简洁,但要注意可读性。如果逻辑太复杂,还是建议用传统的循环写法。

7. 遇到的问题和解决

7.1 忘记更新循环变量

⚠️ 踩坑记录:这是我犯过最多次的错误!用 while 嵌套时,内层和外层的循环变量都要记得更新,否则就会陷入无限循环。

7.2 循环变量命名混淆

7.3 缩进错误

⚠️ 踩坑记录:Python 的缩进非常重要!我曾经把 print() 缩进错了位置,结果所有星号都打印在一行,或者每个星号都换一行...调试了好久才发现是缩进问题。

8. 核心知识点整理

8.1 嵌套循环的基本形式

  • for-for 嵌套:最常用的形式
  • while-while 嵌套:需要注意变量更新
  • for-while 混合嵌套:灵活组合

8.2 执行特点

  • 外层循环执行一次,内层循环完整执行一遍
  • 总执行次数 = 外层次数 × 内层次数
  • 注意性能问题,避免过多层嵌套

8.3 break 和 continue

  • break:只跳出当前所在的那一层循环
  • continue:只跳过当前所在循环的当前迭代
  • 跳出多层循环:使用标志变量或函数

8.4 常见应用场景

  • 打印二维表格和图形
  • 处理矩阵数据
  • 实现排序算法(冒泡排序)
  • 查找质数等数学问题

8.5 优化技巧

  • 减少不必要的循环次数
  • 使用 continue 跳过无效迭代
  • 复杂场景考虑使用列表推导式

8.6 常见错误

  • while 嵌套忘记更新循环变量(无限循环)
  • 循环变量命名冲突
  • 缩进错误导致逻辑混乱

不会等吃屎.

  1. 编写程序,打印一个直角三角形(使用 * 号)
  1. 编写程序,打印一个空心菱形
  1. 编写程序,实现选择排序算法
  1. 编写程序,计算两个矩阵的乘积
推荐云服务

雨云 - 云服务器首选

稳定 · 高速 · 性价比超高

使用优惠码立享折扣,开启你的云端之旅~

一元试用秒级开通24h在线客服

优惠码

zqf
立即访问
Loading...
灵心小窝

灵心小窝

这里不是一个喧闹的地方,只是用来存放一些还不想遗忘的东西。

声明 © 2026 早清风
加载中...