四、for 循环学习笔记

四、for 循环学习笔记

2026-02-19
Python基础
type
Post
status
Published
date
Feb 19, 2026
slug
python-for-loop-notes-4
summary
刚开始学循环的时候,我总是搞混 for 和 while。后来慢慢发现,for 循环就像是自动售货机——你放进去一列东西,它会自动一个个处理,不用你手动数到第几个了。这种"遍历"的方式在处理列表、字符串时特别方便!
tags
Python的逻辑处理
category
Python基础
icon
password
💡 学习感悟:刚开始学循环的时候,我总是搞混 for 和 while。后来慢慢发现,for 循环就像是自动售货机——你放进去一列东西,它会自动一个个处理,不用你手动数到第几个了。这种"遍历"的方式在处理列表、字符串时特别方便!

1. 为什么需要 for 循环?

我的理解

在没有 for 循环之前,如果要处理列表里的每个元素,我得写很多重复代码:
这样写不仅代码冗长,而且如果列表长度变了,代码还要改!
for 循环的出现解决了这个问题——它会自动遍历序列中的每个元素。

for vs while:我该怎么选?

特性
for 循环
while 循环
使用场景
遍历已知序列或固定次数
条件满足时重复执行
计数器管理
自动管理,无需手动
需要手动初始化、更新
语法复杂度
简洁,一行代码
需要条件表达式和更新语句
终止条件
遍历完所有元素自动结束
需要手动确保条件会变为假
典型用途
遍历列表、字符串、range()
等待用户输入、游戏循环
📝 我的理解
  • 当需要遍历序列(列表、字符串等)或执行固定次数的循环时,优先使用 for 循环
  • 当循环次数不确定,需要根据条件判断是否继续时,使用 while 循环

2. for 循环执行流程

2.1 for 循环执行流程图

2.2 执行步骤说明

  1. 开始:进入 for 循环
  1. 判断:检查可迭代对象中是否还有未遍历的元素
  1. 取值:如果有元素,取出下一个元素赋值给循环变量
  1. 执行:执行循环体中的代码
  1. 重复:回到步骤 2,继续判断
  1. 结束:当所有元素都遍历完成后,退出循环
📝 我的理解:for 循环就像是在排队取号——系统会自动叫号(遍历),你不需要记住现在叫到几号,轮到你了就处理,没号了就结束。

3. for 循环基本语法

3.1 基本结构

语法要点

  • for 后面跟循环变量名
  • in 后面跟要遍历的可迭代对象
  • 循环体需要缩进(通常 4 个空格)
  • 每次迭代,循环变量会被赋值为可迭代对象的下一个元素

3.2 简单示例

📝 我的理解:字符串也是可迭代对象!所以 for 循环可以逐个字符遍历字符串,这在处理文本时很有用。

4. range() 函数

4.1 什么是 range()?

range() 是 Python 内置函数,用于生成一个整数序列。它常与 for 循环配合使用,实现固定次数的循环。

4.2 range() 工作原理示意图

4.3 range() 的三种用法

⚠️ 踩坑记录:range() 是左闭右开的!range(5) 生成 0-4,不包括 5。刚开始我总以为是 1-5,结果程序出错...记住这个规律:包含起点,不包含终点

5. break 语句

5.1 什么是 break?

break 语句用于立即终止循环,无论是否还有未遍历的元素。程序会跳出循环体,继续执行循环后面的代码。

5.2 break 执行流程图

5.3 break 使用场景

  • 找到目标值后提前退出
  • 满足特定条件时停止遍历
📝 我的理解:break 就像是紧急出口——一旦满足条件,立刻跳出循环,不再处理后面的元素。这在查找元素时特别有用,找到就可以停下来了。

6. continue 语句

6.1 什么是 continue?

continue 语句用于跳过当前迭代的剩余代码,直接进入下一次循环。它不会终止整个循环,只是跳过本次循环中 continue 后面的代码。

6.2 continue 执行流程图

6.3 continue 使用场景

  • 跳过某些特定值的处理
  • 过滤不符合条件的数据
📝 我的理解:continue 就像是跳过当前,继续下一个。遇到 continue 时,当前这次循环剩下的代码不执行了,直接进入下一次迭代。适合用来过滤数据。

7. for-else 结构

7.1 什么是 for-else?

for 循环可以带一个 else 子句。当循环正常结束(没有被 break 中断)时,else 块会被执行。

7.2 for-else 执行流程图

7.3 使用场景

  • 循环结束后执行清理操作
  • 检查循环是否正常完成
  • 实现搜索逻辑(没找到时执行)
📝 我的理解:for-else 这个结构刚开始让我有点困惑——为什么循环后面还能跟 else?后来理解了:else 是在循环正常结束时执行的,如果被 break 了就不执行。这在查找元素时很有用——找到了 break,没找到就执行 else 提示。

8. enumerate() 函数

8.1 什么是 enumerate()?

enumerate() 函数用于在遍历可迭代对象时,同时获取元素的索引

8.2 enumerate() 工作原理示意图

8.3 使用场景

  • 需要同时访问元素的位置和内容
  • 遍历列表时需要知道当前是第几个元素
📝 我的理解:enumerate() 就像是给每个元素贴上了序号标签,让你既能看到内容,又能知道它是第几个。比用 range(len(list)) 的方式更 Pythonic!

9. zip() 函数

9.1 什么是 zip()?

zip() 函数用于将多个可迭代对象并行遍历,每次从每个对象中取一个元素,组合成一个元组。

9.2 zip() 工作原理示意图

9.3 使用场景

  • 同时遍历多个列表
  • 将多个列表的数据配对处理
📝 我的理解:zip() 就像是拉链——把两个列表像拉链一样一一对应地拉在一起。如果两个列表长度不一样,会以短的为准。

10. 嵌套 for 循环

10.1 什么是嵌套循环?

在一个 for 循环内部再写另一个 for 循环,称为嵌套循环。外层循环每执行一次,内层循环会完整执行一遍。

10.2 嵌套循环执行流程图

10.3 使用场景

  • 打印二维图形
  • 处理多维数据
  • 实现复杂的迭代算法
📝 我的理解:嵌套循环就像是时钟的时针和分针——时针走一格,分针要走完整的一圈。外层循环控制行,内层循环控制列,这样就能处理二维问题了。

11. 列表推导式

11.1 什么是列表推导式?

列表推导式是一种简洁的创建列表的方式,它使用 for 循环在一行代码中生成列表。

11.2 列表推导式工作原理示意图

11.3 使用场景

  • 根据现有列表创建新列表
  • 对列表元素进行转换
  • 过滤列表元素
📝 我的理解:列表推导式是 Python 的语法糖——把原本需要多行循环的代码压缩成一行。但要注意,如果逻辑太复杂,还是建议用传统循环,否则可读性会变差。

12. 实际应用案例

12.1 计算列表元素之和

12.2 查找列表中的最大值

12.3 统计字符串中各字符出现次数


13. 遇到的问题和解决

13.1 循环变量在循环外还能用

⚠️ 踩坑记录:刚开始我以为循环变量 i 只在循环内部有效,结果发现循环外面还能访问!这在其他语言(如 C、Java)中是不行的。要注意不要不小心用到循环后的变量值。

13.2 不要在循环中修改正在遍历的列表

⚠️ 踩坑记录:我曾经在遍历列表时删除元素,结果发现有些元素被跳过了!这是因为删除元素后列表长度变了,索引也变了。正确做法是创建新列表。

13.3 range() 不是列表

📝 我的理解:range() 是惰性求值的——它不会一次性生成所有数字,而是按需生成。这样更省内存,特别是范围很大的时候。

14. 核心知识点整理

14.1 for 循环的基本形式

14.2 range() 的三种用法

  • range(stop):0 到 stop-1
  • range(start, stop):start 到 stop-1
  • range(start, stop, step):start 到 stop-1,步长 step

14.3 循环控制语句

  • break:立即终止整个循环
  • continue:跳过当前迭代,进入下一次
  • else:循环正常结束时执行(被 break 则不执行)

14.4 实用函数

  • enumerate():同时获取索引和值
  • zip():并行遍历多个可迭代对象

14.5 列表推导式

14.6 常见错误

  • range() 是左闭右开区间
  • 不要在遍历列表时修改它
  • 循环变量在循环外仍然可用

必须要能够做出下面的.

  1. 使用 for 循环计算 1 到 100 的和
  1. 使用 for 循环打印斐波那契数列的前 20 项
  1. 使用 for 循环和 continue 打印 1-50 中所有 3 的倍数
  1. 使用 for 循环和 break 在列表中查找第一个负数
  1. 使用 for 循环和 enumerate() 遍历列表,打印每个元素的索引和值
  1. 使用列表推导式创建一个包含 1-20 中所有偶数的列表
推荐云服务

雨云 - 云服务器首选

稳定 · 高速 · 性价比超高

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

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

优惠码

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

灵心小窝

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

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