0Pricing
Python Academy · 课时

嵌套循环与循环模式

组合嵌套循环,实现网格处理、模式生成和累加。

嵌套循环与循环模式 是 CoddyKit 上的免费 Python Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Python Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Python Academy 课程共包含 4 节课。

简介

组合循环可以实现矩阵遍历、多层搜索和生成组合等模式。

基本嵌套循环

两个 for 循环中,外层循环运行 N 次,内层循环在每次外层迭代中运行 M 次,总计 N*M 次迭代。
for i in range(3):
    for j in range(3):
        print(i, j)

乘法表

嵌套循环很适合生成表格。外层循环对应行,内层循环对应列。
for i in range(1, 4):
    for j in range(1, 4):
        print(f'{i*j:3}', end='')
    print()

三角形模式

每行打印 i 个 *:for i in range(1,6): print('*'*i)。这展示了内层循环次数如何取决于外层循环。
for i in range(1, 6):
    print('*' * i)

矩阵遍历

嵌套循环是访问二维列表中每个单元格的标准方式。
matrix = [[1,2,3],[4,5,6]]
for row in matrix:
    for val in row:
        print(val, end=' ')
    print()

累加模式

将所有元素相加:total = 0; for row in matrix: for v in row: total += v
matrix = [[1,2],[3,4]]
total = sum(v for row in matrix for v in row)
print(total)

查找元素

在二维列表中搜索某个值,并使用嵌套循环记录它的位置。
matrix = [[1,2,3],[4,5,6],[7,8,9]]
for i, row in enumerate(matrix):
    for j, val in enumerate(row):
        if val == 5:
            print(f'Found at ({i},{j})')

不重复组合

for i in range(n): for j in range(i+1, n): 会生成列表中的所有不重复数对。
items = ['a','b','c']
for i in range(len(items)):
    for j in range(i+1, len(items)):
        print(items[i], items[j])

嵌套循环的效率

嵌套循环通常具有 O(n^2) 的复杂度。如果内层循环使用字典查找,而不是扫描列表,就可以将复杂度降至 O(n)。
# Efficient: use a set for inner lookup
data = {1, 2, 3, 4}
result = [x for x in range(10) if x in data]  # O(n)
print(result)

使用嵌套推导式展平

[x for row in matrix for x in row] 是一个嵌套展平推导式。请从左到右阅读:先执行外层循环。
matrix = [[1,2],[3,4]]
flat = [x for row in matrix for x in row]
print(flat)

跳出嵌套循环

可以使用标志,或将循环放入函数中并使用 return,以便清晰地退出多层循环。
def find_in_matrix(matrix, target):
    for i, row in enumerate(matrix):
        for j, val in enumerate(row):
            if val == target:
                return (i, j)
    return None
print(find_in_matrix([[1,2],[3,4]], 3))

快速检查

两个嵌套循环分别使用 range(4) 和 range(3) 时,总迭代次数是多少?

回顾

嵌套循环总共有 N*M 次迭代。它们适用于各种模式、矩阵遍历和组合。可以使用推导式进行展平,也可以使用 return 或标志跳出循环。

继续学习

做得很好!请继续下一课,逐步提升您的技能。

常见问题解答

「嵌套循环与循环模式」课时是免费的吗?

是的 — 「嵌套循环与循环模式」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Python Academy 课程的其余内容,请升级到 CoddyKit PRO。 Python Academy 课程共包含 4 节课。

「嵌套循环与循环模式」这节课中我会学到什么?

组合嵌套循环,实现网格处理、模式生成和累加。 你通过在浏览器中直接运行的动手代码来练习 Python Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Python Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Python Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「嵌套循环与循环模式」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Python Academy 课中编写并运行代码吗?

能。每节 Python Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. if / elif / else 语句
  2. for 循环与 range()
  3. while 循环与循环控制
  4. 嵌套循环与循环模式
← 返回 Python Academy