Python从入门到精通(第06章):循环结构与流程控制
Python从入门到精通第06章循环结构与流程控制开头导语这是本系列第06章。本文采用知识点讲解 错误示例 正确写法 自测清单的结构目标是让你不仅能看懂还能独立写出可运行代码。建议你边看边敲所有示例都亲自执行一次。章节摘要本章围绕循环结构与流程控制展开采用错误示例 正确写法 对比说明的学习方式。你将看到每个知识点的常见陷阱和修复路径并通过可运行代码建立稳定的编码习惯。学完后你应能独立实现本章主题的小型程序并具备基础排错能力。关键词forwhilebreakcontinueenumeraterange学习目标把本章概念讲清楚知道什么时候用、什么时候不用。每个知识点都能跑通代码能看懂输出结果。能独立完成本章案例并解释关键实现步骤。先修知识已安装 Python 3.11 及以上版本。会在终端执行python命令。会创建并激活虚拟环境。环境准备python--versionpython-mvenv .venv# Windows PowerShell.venvScriptsActivate.ps1核心知识讲解知识点1for循环遍历遍历序列时优先for语义更清晰。错误示例不要这样写foriin3:print(i)问题说明整数不可直接迭代会抛TypeError。正确写法foritemin[1,2,3]:print(item)对比要点先看输入类型是否匹配再看边界是否覆盖最后检查异常是否可控。练习建议把正确写法改成函数再补一组异常输入测试。知识点2while循环控制while适合未知次数的重复任务。错误示例不要这样写n3whilen0:print(n)问题说明循环变量不更新会造成死循环。正确写法n3whilen0:print(n)n-1对比要点先看输入类型是否匹配再看边界是否覆盖最后检查异常是否可控。练习建议把正确写法改成函数再补一组异常输入测试。知识点3break与continuebreak退出循环continue跳过本轮。错误示例不要这样写foriinrange(5):ifi2:breakifi4:continueprint(i)问题说明把break/continue条件写反会得到错误流程。正确写法foriinrange(5):ifi2:continueifi4:breakprint(i)对比要点先看输入类型是否匹配再看边界是否覆盖最后检查异常是否可控。练习建议把正确写法改成函数再补一组异常输入测试。知识点4enumerate索引遍历同时需要索引和值时用 enumerate。错误示例不要这样写foridx,chinabc:print(idx,ch)问题说明未使用enumerate会因解包失败抛异常。正确写法foridx,chinenumerate(abc,start1):print(idx,ch)对比要点先看输入类型是否匹配再看边界是否覆盖最后检查异常是否可控。练习建议把正确写法改成函数再补一组异常输入测试。知识点5range用法range 是惰性序列适合生成数值区间。错误示例不要这样写print(range(1,10)[0])问题说明range不是列表部分切片/访问认知常见错误。正确写法print(list(range(1,10,2)))对比要点先看输入类型是否匹配再看边界是否覆盖最后检查异常是否可控。练习建议把正确写法改成函数再补一组异常输入测试。知识点6循环else循环正常结束才会进入 else。错误示例不要这样写forxin[1,2,3]:ifx2:breakelse:print(found)问题说明for-else语义理解错误break后不会执行else。正确写法forxin[1,2,3]:ifx9:breakelse:print(not found)对比要点先看输入类型是否匹配再看边界是否覆盖最后检查异常是否可控。练习建议把正确写法改成函数再补一组异常输入测试。案例实战本章主案例目标围绕循环结构与流程控制完成一个可运行的小程序包含输入、处理、输出三个环节。你需要先实现最小功能再补校验和异常处理。defvalidate_input(value:str)-str:valuevalue.strip()ifnotvalue:raiseValueError(输入不能为空)returnvaluedefmain():raw demo cleanvalidate_input(raw)print(处理结果:,clean)if__name____main__:main()扩展练习把主案例改成函数化结构并给每个函数写一组测试输入。你需要记录正常输入、边界输入、异常输入三类结果。常见错误与排查复制代码后直接运行报错先确认缩进、引号、括号是否完整。输出和预期不一致打印中间变量逐步定位问题环节。修改一处导致多处报错说明函数耦合过高优先拆分函数职责。性能与工程建议先保证正确再考虑优化。每个函数尽量只做一件事输入输出保持明确。对外部输入做校验避免脏数据进入核心逻辑。写完代码后做一次从零运行检查确保可复现。本章代码自测清单可打勾我已运行本章所有正确写法代码且输出符合预期。我已复现至少3个错误示例并能解释错误原因。我已把至少2个知识点代码改写成函数版本。我已补充正常输入、边界输入、异常输入三类测试数据。我已给主案例增加输入校验或异常处理逻辑。我已用更清晰的变量名重构至少一段示例代码。我已完成扩展练习并记录与主案例的差异。我能不看文档口述本章6个知识点的用途与边界。我能独立写出1个与本章主题相关的小程序。我已为下一章整理了1份待补基础清单。章末提问本章最核心的三个知识点是什么哪个知识点最容易写错你准备怎么规避本章代码示例中哪个函数最值得复用你能说出一个边界输入示例吗为什么要做输入校验如何判断你已经掌握本章内容本章知识在真实项目中会出现在哪个环节如果重构本章案例你先改哪一部分本章里有哪些命名可以更清晰下一章学习前你会补充什么练习章末答案以章节中的知识点小节为准至少能口述定义与用途。通常是边界处理与异常处理需通过测试数据覆盖。输入校验与数据清洗函数最常见。例如空字符串、None、超长文本、非法数字等。输入校验可以拦截错误数据减少连锁故障。能脱离文档独立写出同类代码并解释原因。可能在接口层、数据处理层、任务脚本层。先拆分函数职责再补单元测试。优先替换含糊命名让变量表达业务意图。补做2-3个小练习把概念变成肌肉记忆。本章小结本章重点不是看懂而是能独立写出来。每个知识点都要配代码并亲手运行。学会用测试输入验证代码稳定性会明显提升。下一章预告下一章是第07章《函数基础与参数传递》。建议先完成本章自测清单再进入下一章。章节导航上一篇第05章《条件判断与分支结构》下一篇第07章《函数基础与参数传递》版权声明本文为《Python从入门到精通》系列连载内容面向学习交流使用。版权归作者所有转载需保留出处与章节信息。