本文为「30天吃透Python核心语法」系列第八篇,承接Day7的while循环内容,全程纯文字讲解、零基础友好、无晦涩术语,每一个知识点都配可直接运行的代码示例,彻底搞定Python更简洁、更常用的循环方式。
大家好,欢迎来到30天Python精通计划的第八天。
Day7我们搞定了while循环,学会了让程序重复执行任务,解决了大部分重复操作的需求,很多同学都顺利完成打卡,成功写出了猜数字、密码验证等小脚本,进步特别大!
但不少同学在实操后留言:
- 用while循环遍历字符串的每个字符,还要手动写索引、更新变量,太麻烦了;
- 想批量处理1-100的数字,while要定义初始值、更新条件,代码不够简洁;
- 新手写while总容易漏写变量更新,一不小心就写出死循环,有没有更省心的循环?
当然有!今天我们要学的for循环 + range()函数,就是Python中更常用、更简洁、新手更易上手的循环语法,也是后续数据处理、遍历容器的核心工具。
如果说while循环适合「不确定循环次数」的场景,那for循环就是「确定遍历对象、已知循环规则」场景的最优解,代码更简洁、天生不会死循环,能大幅提升编程效率。
学完今天的内容,你将:
✅ 分清while循环和for循环的核心区别,精准选择适用场景
✅ 掌握for循环基础语法,轻松遍历字符串等可迭代对象
✅ 吃透range()函数3种核心用法,精准生成整数序列
✅ 熟练运用for+range组合,实现高效循环操作
✅ 掌握for循环中break、continue的用法,灵活控制循环
✅ 学会基础for循环嵌套,搞定简单批量排版需求
✅ 彻底避开for循环新手高频坑,代码零报错
一、先搞懂:for循环和while循环的核心区别
在学习语法前,先理清两种循环的本质差异,避免后续混用,这是新手选对循环的关键:
1. while循环:靠「条件判断」控制循环,只要条件为True就持续执行,需要手动定义循环变量、更新变量,适合不确定循环次数的场景(比如猜数字、密码重试),稍不注意就会出现死循环。
2. for循环:靠「遍历序列」控制循环,依次取出序列中的每一个元素,元素遍历完自动结束循环,无需手动定义和更新变量,天生不会死循环,适合确定遍历对象、已知数据范围的场景(比如遍历文本、批量处理数字、循环固定次数),代码更简洁易懂。
这里的「序列」,就是我们之前学过的字符串、后续要学的列表、元组等,凡是能逐个取出元素的对象,都能用for循环遍历。
二、for循环基础语法与执行流程
for循环的语法非常简洁,没有复杂的条件判断,新手一看就懂,严格遵循缩进规则即可。
1. 基础语法规则
- 临时变量:用来依次接收可迭代对象中的每个元素,名字可以自定义(常用i、char、item等),每循环一次,变量的值就会自动更新为下一个元素;
- 可迭代对象:可以被逐个遍历的数据,比如字符串、列表、元组、range生成的序列等;
- 循环体:需要重复执行的代码,必须缩进,和if、while的缩进规则完全一致。
2. 核心执行流程
1. 程序从可迭代对象中取出第一个元素,赋值给临时变量;
2. 执行缩进的循环体代码;
3. 代码执行完,自动从可迭代对象中取出下一个元素,重新赋值给临时变量;
4. 重复上述步骤,直到可迭代对象中的所有元素都被遍历完毕,循环自动结束。
3. 基础实操:遍历字符串(衔接Day3知识)
我们用最熟悉的字符串做示例,逐个取出字符串中的每一个字符,不用手动写索引,代码极简:
运行代码后,会依次打印出P、y、t、h、o、n、学、习,遍历完所有字符,循环自动结束,完全不用手动控制变量,彻底告别死循环。
三、循环神器:range()函数,精准生成整数序列
for循环的强大,离不开range()函数的加持,它是Python专门用来生成连续整数序列的内置函数,也是for循环最常用的搭档,几乎所有固定次数的循环,都靠for+range实现。
range()函数的核心规则:左闭右开(包含起始值,不包含结束值),和字符串切片的规则完全一致,新手可以直接联动记忆。
它有3种核心用法,覆盖新手所有场景:
1. 用法一:range(结束值)
生成从0开始,到「结束值-1」的整数序列,默认步长为1(步长:每次递增的数值)。
语法: range(stop)
示例:
2. 用法二:range(起始值, 结束值)
自定义起始值,生成从「起始值」开始,到「结束值-1」的整数序列,默认步长为1。
语法: range(start, stop)
示例:
3. 用法三:range(起始值, 结束值, 步长)
自定义起始值、结束值和步长,步长可以是正整数(递增),也可以是负整数(递减)。
语法: range(start, stop, step)
示例1:正数步长,生成1-10之间的偶数
示例2:负数步长,倒序生成5-1的数字
新手重点提醒
range()函数不会直接生成列表,它是一个迭代器,占用内存极小,处理大批量数字时效率极高,新手只需记住它的取值规则和用法即可,后续进阶会深入讲解原理。
四、for+range()黄金组合,新手高频实操
for循环和range()函数是绝配,几乎所有固定次数的循环、数字批量处理,都用这个组合,代码比while简洁太多,我们用几个经典案例实操:
案例1:循环执行固定次数(打印5遍学习口号)
案例2:计算1-100的累加和(对比while循环)
对比while循环,少了变量初始值定义和变量更新步骤,代码更简洁,逻辑更清晰,完全不会出现死循环。
案例3:计算1-50之间所有奇数的和
五、for循环的循环控制:break和continue
和while循环一样,for循环也可以用break和continue灵活控制循环流程,用法完全一致,新手直接迁移知识点即可。
1. break:立刻终止整个for循环
遍历过程中,只要执行到break,立即结束整个循环,不再遍历剩余元素。
示例:遍历字符串,遇到字符 o 就终止循环
2. continue:跳过本次循环,直接进入下一次
执行到continue时,跳过本次循环中continue后续的代码,直接遍历下一个元素。
示例:遍历字符串,跳过字符 o
六、for循环嵌套:循环里面套循环
和if嵌套、while嵌套一样,for循环也可以嵌套使用,即在一个for循环的循环体中,写入另一个for循环,适合处理多行多列的排版、二维数据等场景。
核心执行规则
外层循环执行1次,内层循环完整执行所有次数,直到外层循环遍历完毕,整个嵌套循环结束。
基础实操:打印3行4列的星号图案
运行结果:
简易实操:打印九九乘法表前3行
七、新手高频踩坑避坑指南
for循环虽然简单,但新手也容易踩坑,整理了7个最常见问题,提前避开少走弯路:
1. 误解range()左闭右开规则,取不到目标数字
这是新手最常见错误,比如想遍历1-10,写成 range(1,10) ,结果只到9。
解决方法:结束值永远比目标最大值大1,想取1-10就写 range(1,11) 。
2. 循环体缩进错误
和if、while一样,for循环下的循环体必须统一缩进4个空格,缩进错乱会直接报错或逻辑混乱。
解决方法:统一用PyCharm自动缩进,按Tab键即可生成4个空格。
3. for循环语句结尾忘写英文冒号
写完 for i in range(5) 忘记加英文冒号,直接触发语法报错。
解决方法:养成习惯,所有for、if、while、else语句结尾,都顺手加英文冒号。
4. 临时变量和外部变量重名,导致数据混乱
临时变量尽量用i、char、item等简单名字,避免和程序中其他变量重名,导致数据被覆盖。
5. 步长设置错误,生成空序列
比如 range(1,5,-1) ,起始值小于结束值,步长为负,无法生成序列,循环直接不执行。
解决方法:正数步长,起始值<结束值;负数步长,起始值>结束值。
6. 混淆break和continue的作用
想跳过单个元素,却用了break,导致整个循环提前结束。
解决方法:终止整个循环用break,跳过单次循环用continue。
7. 嵌套循环缩进混乱,内外层代码归属错误
内层循环和外层循环缩进层级不一致,导致代码逻辑完全错乱。
解决方法:外层循环缩进4格,内层循环再缩进4格(共8格),明确层级。
八、今日课后作业(必做!只看不敲,永远学不会)
今天的作业循序渐进,覆盖for循环所有核心知识点,全部完成才算真正吃透:
1. 基础必做:用for+range打印1-30之间能被3整除的数字,逐个输出;
2. 进阶练习:用for循环计算10-50之间所有偶数的累加和,打印最终结果;
3. 挑战练习:用for循环嵌套,打印4行5列的 # 号矩形图案;
4. 拓展练习:遍历字符串 "I love Python" ,跳过空格字符,逐个打印其余字符。
九、明日预告
Day9我们将学习Python最常用的数据容器:列表,终于可以用一个变量存储多个数据!
学完明天的内容,你就能存储批量数据、实现增删改查,告别单个变量存储的局限,为后续数据处理、办公自动化打下核心基础,也是Python数据处理的入门关键。
结尾互动
今天的for循环+range函数,你都掌握了吗?
相比while循环,是不是觉得for循环更简洁省心?
完成作业的同学,可以在评论区扣【打卡Day8】!
遇到任何报错、知识点不懂的地方,直接留言,我会逐一解答!
关注我,30天从零稳扎稳打,每天1.5小时,轻松吃透Python核心语法,后续带你做办公自动化、小脚本开发,新手也能轻松学会Python!