上一期我们吃透了if语句的条件判断逻辑,今天继续学习Python流程控制的另一个核心——for循环。它是Python中最常用的循环语句,核心作用是“重复执行一段代码”,不用手动重复编写相同代码,就能高效完成批量操作,无论是遍历数据、批量处理任务,还是重复执行指定逻辑,都离不开它。
生活中处处有for循环的影子:“依次读取通讯录里的每一个联系人”“逐个处理文件夹里的所有文件”“重复打印10遍相同的提示语”——这种“逐个处理、重复执行”的逻辑,正是for循环的核心思想。今天就从基础语法、核心用法到实战示例,一次性讲透for循环,看完直接套用。
📌 先搞懂:for循环的核心作用
for循环的核心是“遍历与重复”,本质是:依次取出一个可迭代对象(如列表、字符串、数字序列)中的每一个元素,针对每个元素执行一段相同的代码,直到所有元素都处理完毕,循环自动结束。
和if语句的“判断一次、执行一次”不同,for循环是“重复执行、批量处理”,尤其适合需要多次重复相同操作的场景。比如:打印1-10的所有数字、计算列表中所有元素的和、批量修改字符串内容,用for循环能大幅简化代码,提升效率。
简单来说,if语句是“选路走”,for循环是“绕圈走”,两者结合,就能实现更复杂的代码逻辑。
🔧 基础语法:for循环的核心结构
for循环的语法非常简洁,核心分为两部分:可迭代对象和循环体(需要重复执行的代码),重点依然是Python的“缩进规则”(和if语句一致,不可出错)。
核心规则:for循环后接“变量in可迭代对象”,末尾必须加冒号(:);缩进(通常4个空格)代表“属于循环体的代码”,会被重复执行;不缩进的代码,只在循环结束后执行一次。
1. 基本语法格式
for 变量名 in 可迭代对象: 循环体(需要重复执行的代码,缩进4个空格) 循环体(同一缩进级别,依次执行)# 不缩进的代码,循环结束后才执行,只执行一次
关键说明:
变量名:可以自定义(如i、num、item),每次循环会将可迭代对象中的“下一个元素”赋值给这个变量;
可迭代对象:简单理解为“可以逐个取出元素的对象”,常见的有字符串、列表、元组、数字序列(用range()函数生成);
循环体:需要重复执行的代码,缩进必须规范,否则会报错或逻辑混乱。
2. 最基础示例:遍历字符串
字符串是最常见的可迭代对象,for循环可以逐个取出字符串中的每一个字符,适合批量处理字符(如判断字符类型、拼接字符)。
# 遍历字符串,逐个打印每个字符text = "Python"for char in text: print(char) # 每次循环打印一个字符,共执行6次(字符串有6个字符)# 不缩进的代码,循环结束后执行print("循环执行完毕!")
执行结果:依次打印P、y、t、h、o、n,最后打印“循环执行完毕!”。
这里的char是自定义变量,每次循环会自动接收text中的下一个字符,直到所有字符遍历完成,循环自动终止。
🔨 核心用法:3种常用可迭代对象
for循环的灵活度,取决于可迭代对象的选择。下面3种可迭代对象是实战中最常用的,掌握它们,就能应对80%的for循环场景。
1. 遍历列表
列表是Python中最常用的数据结构之一,for循环可以逐个取出列表中的每一个元素,实现批量处理(如计算列表元素和、筛选符合条件的元素)。
# 示例1:遍历列表,打印每个元素fruit = ["苹果", "香蕉", "橙子", "葡萄"]for f in fruit: print(f"我喜欢吃{f}")# 示例2:遍历列表,计算所有元素的和nums = [10, 20, 30, 40]total = 0 # 定义一个变量,用于存储总和for num in nums: total += num # 每次循环,将当前元素加到total中print(f"列表所有元素的和为:{total}")
执行结果:示例1依次打印4句喜欢的水果;示例2打印“列表所有元素的和为:100”,实现了批量求和的功能,不用手动编写4次加法。
2. 遍历数字序列(用range()函数)
如果需要重复执行固定次数的代码(如打印10遍提示语、执行5次运算),用range()函数生成数字序列,是最简洁的方式。
range()函数核心用法(3种常用格式):
range(n):生成0到n-1的整数序列(如range(5) → 0,1,2,3,4);
range(a, b):生成a到b-1的整数序列(如range(2,6) → 2,3,4,5);
range(a, b, step):生成a到b-1的整数序列,步长为step(如range(1,10,2) → 1,3,5,7,9)。
# 示例1:重复执行5次,打印提示语for i in range(5): print("第", i+1, "次执行循环") # i从0开始,+1后从1计数# 示例2:打印1-10的所有整数for num in range(1, 11): print(num, end=" ") # end=" " 表示不换行,横向打印# 示例3:打印1-10中的所有奇数(步长为2)for odd in range(1, 11, 2): print(odd)
3. 遍历元组/字典
除了列表和字符串,for循环还能遍历元组(和列表用法类似,不可修改元素)和字典(需注意遍历的是键还是值)。
# 示例1:遍历元组(和列表用法一致)info = ("张三", 20, "男", "Python爱好者")for item in info: print(item)# 示例2:遍历字典(两种常用方式)student = {"name": "李四", "age": 18, "score": 90}# 方式1:遍历字典的键(默认,最常用)for key in student: print(f"{key}:{student[key]}") # 通过键获取对应的值# 方式2:遍历字典的键和值(用items()方法)for key, value in student.items(): print(f"{key}:{value}")
✅ 核心细节:必记的4个关键点
缩进依然是灵魂:和if语句一样,for循环的循环体必须缩进(4个空格),同一循环体的缩进必须一致,否则会报错或逻辑错误(最常见的错误)。
可迭代对象不能错:for循环后面必须接可迭代对象,不能直接接数字、布尔值(如for i in 10: 会报错),若需重复固定次数,用range()函数。
变量名可自定义:变量名(如i、item、num)可以随便起,建议起有意义的名字(如遍历水果用fruit,遍历数字用num),提升代码可读性。
循环会自动终止:只要可迭代对象中的元素全部遍历完毕,循环会自动结束,不需要手动控制终止(和后续要学的while循环不同)。
# 错误示例(缩进错误)for i in range(3):print(i) # 错误:没有缩进,会报错# 正确示例(缩进规范)for i in range(3): print(i) # 正确,缩进4个空格# 错误示例(不可迭代对象)# for i in 5: # 报错:int类型不是可迭代对象for i in range(5): # 正确,range(5)是可迭代对象 print(i)
🔧 实战场景:3个高频示例
结合日常编程场景,整理3个实用示例,涵盖for循环的核心用法,帮你快速上手,解决实际问题。
示例1:批量生成文件名
场景:生成10个文件名(如file_1.txt、file_2.txt),批量处理文件时常用。
# 批量生成10个文件名for i in range(1, 11): filename = f"file_{i}.txt" print(filename)
示例2:筛选列表中的偶数
场景:遍历列表,筛选出所有偶数,存入新列表(结合if语句,实战高频组合)。
# 筛选列表中的偶数nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]even_nums = [] # 用于存储筛选出的偶数for num in nums: if num % 2 == 0: # 判断是否为偶数(取余为0) even_nums.append(num) # 将偶数添加到新列表print("列表中的偶数:", even_nums)
示例3:计算1-100的总和
场景:用for循环实现1到100的累加,不用手动编写100次加法,高效简洁。
# 计算1-100的总和total = 0for num in range(1, 101): total += num # 每次循环,将当前数字加到total中print(f"1-100的总和为:{total}")
❌ 高频避坑指南
避坑1:忘记加冒号(:)—— for循环后面必须加冒号,否则报错(和if语句一样,容易忽略)。
避坑2:缩进混乱—— 循环体的缩进必须一致,不能混合使用空格和Tab键,建议固定用4个空格缩进。
避坑3:误用不可迭代对象—— 直接用数字、布尔值作为可迭代对象(如for i in 10:),会报错,需用range()函数转换。
避坑4:遍历字典时取错值—— 直接遍历字典,默认获取的是“键”,不是“值”,取value需用student[key]或items()方法。
# 避坑示例# 坑1:忘记加冒号# for i in range(3)# print(i) # 报错# 坑2:缩进混乱# for i in range(3):# print(i)# print("循环中") # 缩进不一致,报错# 坑3:误用不可迭代对象# for i in 8: # 报错,应改为range(8)for i in range(8): print(i)# 坑4:遍历字典取错值student = {"name": "张三", "age": 20}# 错误:直接遍历取的是键,不是值for key in student: # print(key) # 打印的是name、age,不是对应的值 print(student[key]) # 正确,通过键获取值
📝 核心总结
for循环的核心是“遍历与重复”,依次处理可迭代对象中的每一个元素,批量执行代码;
3种高频可迭代对象:列表、range()数字序列、字典/元组,按需选择场景;
关键细节:冒号不能少、缩进要规范、可迭代对象不能错,循环会自动终止;
和if语句结合,能实现更复杂的逻辑(如筛选、条件批量处理),是后续学习复杂编程的基础。
for循环的难度不高,重点是理解“遍历”的逻辑,多动手练习示例,熟悉不同可迭代对象的用法。刚开始可能会在缩进、可迭代对象上踩坑,多试几次就能熟练掌握。
AI可代笔写代码,但代码逻辑需自己读懂;无需精通手写编程,却要能看透每一段代码的核心逻辑。