Python入门必学:从零基础吃透for循环的核心用法

内容分享1周前发布
0 6 0

Python入门必学:从零基础吃透for循环的核心用法

对于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()方法)
forin 用户信息.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循环。

给初学者的练习提议

  1. 基础练习:用for循环打印1到20的偶数
    (提示:用range(2, 21, 2))
  2. 进阶练习:用嵌套循环打印一个空心正方形
    (提示:外层控制行数,内层控制每行的*号,中间用空格填充)
  3. 实战练习:遍历一个包含学生信息的字典列表,计算所有学生的平均年龄
    (数据示例:students = [{“name”: “A”, “age”: 18}, {“name”: “B”, “age”: 20}])

总结

for循环是Python中最常用的循环工具,核心逻辑就是“遍历可迭代对象中的每个元素,执行对应操作”。初学者需要重点掌握:

  • 如何遍历列表、字符串、字典等常见数据类型
  • range()函数的三种用法(控制循环次数的关键)
  • break和continue的区别(一个终止循环,一个跳过本次)

记住:编程学习没有捷径,多写代码多调试!遇到不懂的地方,试着把循环过程想象成“拆包裹”或“数苹果”,用生活中的例子协助理解抽象概念。下次我们会讲解列表推导式,用一行代码实现高效循环,记得关注哦!

© 版权声明

相关文章

6 条评论

  • 头像
    醉墨笙箫 读者

    谢谢!分析出头等奖了透露一下

    无记录
    回复
  • 头像
    云泽笔记 读者

    嵌套循环有啥注意点?

    无记录
    回复
  • 头像
    柳月路的小孩 投稿者

    一般不要嵌套太多级,如控制在3级以内。

    无记录
    回复
  • 头像
    少抽象 投稿者

    拜你为师如何?真心想学,就不知道从哪里下手。

    无记录
    回复
  • 头像
    盛开的虞美人 读者

    哪天开班了叫上你

    无记录
    回复
  • 头像
    科技邓先生 投稿者

    可以,我用彩势交换,我的彩票分析在中国可以说是首屈一指。

    无记录
    回复