【Python 学习第 40 天】for 循环

【Python 学习第 40 天】for 循环

学习日期:2026-10-27

知识点:for 循环

难度:0.71

一、今日知识点

今天学习的是 for 循环。

for 循环用于遍历一个可迭代对象(如列表、字符串、range 对象),对其中每个元素依次执行循环体。基本语法是 for 变量 in 可迭代对象:,循环体需要缩进。range(n) 生成 0 到 n-1 的整数序列,range(start, stop, step) 还能指定起点和步长。循环中可用 break 提前结束、continue 跳过本次。示例:

for i in range(3):

二、详细解析

概念说明

for 循环是 Python 中最常用的循环结构,它的作用是把一个可迭代对象里的元素挨个取出来,每取一个就执行一次循环体 。你可以把它想象成"流水线":传送带上依次送来列表里的每个元素、字符串里的每个字符、或者 range 生成的每个数字,机器(循环体)对送来的每个东西做同样的处理。

它之所以重要,是因为现实中大量任务都是"对一堆数据中的每一个做同样的事"------统计字符、累加求和、遍历列表、批量处理文件行。用 for 循环,你不需要手动维护下标,也不用担心越界,代码既短又不容易出错。

语法与用法

核心语法只有一行:

复制代码
for 变量 in 可迭代对象:
    循环体(需要缩进)

几个关键规则:

  • 可迭代对象 :列表、字符串、元组、字典、集合、range 对象、文件对象等都可以。
  • 缩进:循环体必须统一缩进(通常 4 个空格),缩进结束即表示循环体结束。
  • range 的三种写法:
  • range(n) → 0, 1, ..., n-1
  • range(start, stop) → 从 start 到 stop-1
  • range(start, stop, step) → 按 step 步长递增(stop 本身不包含)
  • break:立即跳出整个循环。
  • continue:跳过本次剩余语句,直接进入下一次迭代。
  • 循环变量在循环结束后仍然存在,保存的是最后一次取到的值。

示例代码

示例 1:用步长遍历并累加

python 复制代码
# range(1, 6, 2) 生成 1, 3, 5
total = 0
for i in range(1, 6, 2):
    total += i          # 依次加 1、3、5
print(total)            # 输出 9

示例 2:遍历字符串并配合 continue

python 复制代码
s = "banana"
count = 0
for ch in s:            # 字符串本身就是可迭代对象
    if ch != 'a':
        continue        # 不是 'a' 就跳过,进入下一个字符
    count += 1
print(count)            # 输出 3

示例 3:用 break 提前结束

python 复制代码
nums = [4, 8, 15, 16]
for n in nums:
    if n > 10:
        print("找到第一个大于 10 的数:", n)
        break           # 找到后立即停止,不再看后面的元素

常见坑

  1. 忘记缩进或缩进不一致 :for 行末尾的冒号后,循环体必须缩进;混用空格和 Tab 会直接报 IndentationError。
  2. 误以为 range(a, b) 包含 b :range(1, 6) 只到 5。想让终点被包含,要写成 range(1, 7)。
  3. 在循环中修改正在遍历的列表 :边遍历边 append/remove 会导致跳过元素或行为混乱,建议遍历副本(如 for x in lst[:])或改用新列表收集结果。

小结

for 循环就是"对可迭代对象中的每个元素依次做同一件事",掌握 range 的边界与步长、break/continue 的控制流,以及正确的缩进,就能覆盖绝大多数遍历场景。

三、今日练习

第 1 题 ❌

**题目:**下面代码的输出是什么?

total = 0

for i in range(1, 6, 2):

total += i

print(total)

  • 我的答案:D
  • 正确答案:A

第 2 题 ✅

**题目:**补全代码,使其统计字符串 s 中字母 'a' 出现的次数,并把结果存入变量 count:

s = "banana"

count = 0

for ch in ____:

if ch == 'a':

count += 1

print(count)

  • 我的答案:s

四、今日总结

  • 题目数量:2
  • 答对:1
  • 正确率:50%

本文由个人 Python 学习智能体自动生成

相关推荐
专注仿真1 小时前
知识问答大模型-rag算法详解
人工智能·python·控制算法
染指11102 小时前
158.Agent-LangGraph-子图(共享状态和不共享状态模式)
开发语言·人工智能·python·ui·agent·agents
云和数据.ChenGuang3 小时前
Python 常见特殊方法详解:__new__、__init__、__del__、__str__、__repr__ 与 __getattribute__
开发语言·人工智能·python·1024程序员节
xyouyuweizhu3 小时前
字节流与字符流:Java IO 的两条主线该怎么选
java·开发语言·python
迪菲赫尔曼4 小时前
【基础篇 04】第一次使用终端:命令在哪里输入,电脑现在又“站”在哪里?
python·yolo·目标检测
qianbo_insist4 小时前
# 在 Qwen3.5-2B 上把 GDN-1 无损换成 GDN-2:一次完整的架构手术实验(负结果)
人工智能·pytorch·python·架构
专注仿真5 小时前
Agentic RAG算法详解
人工智能·python·大模型训练·控制算法
学习论之费曼学习法5 小时前
无人值守AI内容矩阵实战(8):标题 A/B 实验的 6 个工程实现细节,隔日对比与自动判胜
人工智能·python·算法·矩阵·自动化·a/b测试·内容矩阵
东哥16886 小时前
我用 DeepSeek 做了 4 个零依赖的赚钱小工具,全部开源
python·开源·deepseek