
对于Python初学者来说,循环结构是编程入门的关键知识点。其中,for循环就像一个“自动分拣机”,能帮我们高效处理重复任务。本文将用通俗易懂的语言,结合大量带注释的代码示例,带你从零掌握for循环的核心用法,即使是完全零基础的新手也能轻松理解!
一、for循环的基础:像拆快递一样遍历数据
1. 先搞懂什么是“可迭代对象”
可迭代对象就像一个“有顺序的包裹”,里面装着多个元素,可以一个一个拆开来看。
Python中常见的可迭代对象包括:
- 列表([1, 2, 3])、元组(('a', 'b'))、字符串(”hello”)
- 字典({“name”: “Alice”})、集合({1, 2, 3})
- 甚至是我们后面会学到的“生成器”
2. for循环的语法像“拆包裹”流程
# 语法结构:for 临时变量 in 包裹: 执行操作
fruits = ["苹果", "香蕉", "樱桃"] # 这是一个列表“包裹”
for 水果 in fruits: # 依次从fruits中取出每个元素,赋值给“水果”变量
print(f"当前拿到的水果是:{水果}") # 循环体:每次取出后执行的操作
运行结果:
当前拿到的水果是:苹果
当前拿到的水果是:香蕉
当前拿到的水果是:樱桃
二、遍历不同“包裹”的技巧
1. 字符串包裹:逐个字符处理
message = "你好,世界!" # 字符串也是一个“字符包裹”
for 字符 in message: # 依次取出每个字符
print(字符, end=" ") # end=" "表明不换行,用空格隔开字符
输出:你 好 , 世 界 !
2. 字典包裹:如何拿到“钥匙”和“值”
字典就像一个带钥匙的抽屉,每个“钥匙”对应一个“值”。
用户信息 = {"姓名": "Alice", "年龄": 30, "城市": "纽约"}
# 遍历所有钥匙(键)
for 钥匙 in 用户信息:
print(f"抽屉钥匙:{钥匙}") # 输出:姓名、年龄、城市
# 遍历所有值(推荐用values()方法)
for 值 in 用户信息.values():
print(f"抽屉内容:{值}") # 输出:Alice、30、纽约
# 同时遍历钥匙和值(推荐用items()方法)
for 钥匙, 值 in 用户信息.items(): # items()会返回(钥匙, 值)的组合
print(f"{钥匙}对应的内容是:{值}")
3. 集合包裹:自动去重的无序包裹
数字 = {1, 2, 2, 3, 3, 3} # 集合会自动去重,且没有顺序
for 数 in 数字:
print(f"集合中的数字:{数}") # 输出顺序可能每次不同,列如1 2 3
三、range函数:定制循环次数的“计数器”
range()就像一个“数字工厂”,可以按规则生成一系列整数,常用于控制循环次数。
1. 三种“生产模式”示例
(1)模式1:从0开始生产(单参数)
for i in range(5): # 生成0,1,2,3,4(共5个数字)
print(f"第{i+1}次循环") # 输出:第1次到第5次
(2)模式2:指定起始值(双参数)
for i in range(2, 7): # 生成2,3,4,5,6(从2开始,到7之前结束)
print(f"当前数字是:{i}")
(3)模式3:指定步长(三参数)
# 步长为2,生成奇数
for i in range(1, 10, 2): # 1,3,5,7,9
print(f"奇数:{i}")
# 反向生成(从10到1)
for i in range(10, 0, -1): # 10,9,8,...,1
print(i, end=" ") # 输出:10 9 8 7 6 5 4 3 2 1
2. 实战:计算1到100的和
总和 = 0
for i in range(1, 101): # 生成1到100的数字
总和 += i # 等价于 总和 = 总和 + i
print(f"1+2+...+100的结果是:{总和}") # 输出:5050
四、嵌套循环:像俄罗斯套娃一样循环
嵌套循环就是“循环里套循环”,常用于处理二维数据(列如表格、图形)。
示例:打印九九乘法表(经典入门题)
for 行数 in range(1, 10): # 外层循环:控制行数(1到9行)
for 列数 in range(1, 行数 + 1): # 内层循环:列数从1到当前行数
# 拼接算式:列数×行数=结果,用制表符 对齐
print(f"{列数}×{行数}={行数*列数}", end=" ")
print() # 每行结束后换行,实现分行效果
输出片段:
1×1=1
1×2=2 2×2=4
1×3=3 2×3=6 3×3=9
...
五、循环控制:break和continue的区别
1. break:紧急停止循环(像遇到红灯)
数字列表 = [1, 3, 5, 7, 8, 9]
for 数 in 数字列表:
if 数 % 2 == 0: # 遇到偶数就停止
print(f"发现偶数{数},立即结束循环!")
break # 跳出整个for循环
else: # 如果循环正常结束(没被break中断),就执行这里
print("没有找到偶数...")
2. continue:跳过当前步骤(像遇到坑绕开)
for i in range(1, 11): # 1到10
if i % 2 == 0: # 如果是偶数,跳过本次循环
continue # 直接进入下一次循环,后面的print不会执行
print(f"奇数:{i}") # 只打印奇数
输出:1 3 5 7 9
六、初学者常犯的错误和避坑指南
错误1:循环中修改原列表(危险操作!)
# ❌ 错误示例:遍历列表时直接删除元素
水果列表 = ["苹果", "香蕉", "樱桃", "枣"]
for 水果 in 水果列表:
if 水果.startswith("香"):
水果列表.remove(水果) # 会导致后续元素索引混乱,可能漏删!
print(水果列表) # 可能输出:['苹果', '樱桃', '枣'](预期只删除香蕉)
✅ 正确做法:用列表推导式生成新列表
水果列表 = [水果 for 水果 in 水果列表 if not 水果.startswith("香")]
技巧:用enumerate获取元素位置
颜色列表 = ["红", "绿", "蓝"]
for 序号, 颜色 in enumerate(颜色列表): # enumerate会返回(序号, 元素)
print(f"第{序号+1}种颜色是:{颜色}")
输出:
第1种颜色是:红
第2种颜色是:绿
第3种颜色是:蓝
进阶:用zip同时遍历多个列表
姓名 = ["Alice", "Bob"]
年龄 = [25, 30]
for 名字, 年龄 in zip(姓名, 年龄): # zip会把两个列表“打包”成元组
print(f"{名字}今年{年龄}岁啦!")
输出:
Alice今年25岁啦!
Bob今年30岁啦!
七、for循环和while循环怎么选?
|
场景描述 |
选for循环(更简单) |
选while循环(更灵活) |
|
已知循环次数(如10次) |
✅ 用for i in range(10): |
❌ 需手动设计数器i=0, i<10 |
|
遍历列表、字典等数据 |
✅ for 元素 in 列表: |
❌ 需用索引i=0, i<len(列表) |
|
条件满足时循环(如猜数字) |
❌ 需配合break |
✅ while 猜测错误: 继续猜测 |
提议:新手优先用for循环,代码更简洁;遇到“不确定循环次数”的场景再用while循环。
给初学者的练习提议
- 基础练习:用for循环打印1到20的偶数
(提示:用range(2, 21, 2)) - 进阶练习:用嵌套循环打印一个空心正方形
(提示:外层控制行数,内层控制每行的*号,中间用空格填充) - 实战练习:遍历一个包含学生信息的字典列表,计算所有学生的平均年龄
(数据示例:students = [{“name”: “A”, “age”: 18}, {“name”: “B”, “age”: 20}])
总结
for循环是Python中最常用的循环工具,核心逻辑就是“遍历可迭代对象中的每个元素,执行对应操作”。初学者需要重点掌握:
- 如何遍历列表、字符串、字典等常见数据类型
- range()函数的三种用法(控制循环次数的关键)
- break和continue的区别(一个终止循环,一个跳过本次)
记住:编程学习没有捷径,多写代码多调试!遇到不懂的地方,试着把循环过程想象成“拆包裹”或“数苹果”,用生活中的例子协助理解抽象概念。下次我们会讲解列表推导式,用一行代码实现高效循环,记得关注哦!
© 版权声明
文章版权归作者所有,未经允许请勿转载。
谢谢!分析出头等奖了透露一下
嵌套循环有啥注意点?
一般不要嵌套太多级,如控制在3级以内。
拜你为师如何?真心想学,就不知道从哪里下手。
哪天开班了叫上你
可以,我用彩势交换,我的彩票分析在中国可以说是首屈一指。