Python3 循环语句新手实战指南

发布时间:2026/7/23 11:28:01

Python3 循环语句新手实战指南 WEB项目地址演示地址① 循环核心概念与生活化类比解析你想想循环在生活里长什么样每天早上闹钟响 → 按掉 → 刷牙 → 洗脸 → 吃早饭。这套动作你重复了 365 天这就是循环。快递员派件拿起一个包裹 → 看门牌号 → 放门口 → 下一个包裹。直到送完所有包裹循环停止。Python 里的循环就干两件事重复做某事以及知道什么时候停。两种主要形式for循环适合我知道要遍历哪些东西的场景。比如你手里有一份 10 个包裹的清单挨个处理。while循环适合我不知道要重复几次得看条件的场景。比如猜数字游戏——你猜不对就不停猜对了才停。现在脑子里有这个画面就行后面每个环节都会动手写。② 开发环境搭建与首个循环代码运行别一上来就用 PyCharm 那种大家伙新手容易被界面吓到。我的推荐最轻量去 python.org 下载 Python 3.x勾选Add Python to PATH。安装完后按Win R输入cmd在命令行里敲python看到提示符就说明环境好了。或者用 VS Code 插件也够用。但最最友好的方式是直接用在线编辑器比如pythontutor.com或replit.com打开就能写还能看到变量一步步怎么变。你的第一个循环代码——不用管太多先跑起来# 打印 3 次 我开始学循环了foriinrange(3):print(我开始学循环了)把这段代码敲进去建议手动敲不要复制点击运行。如果看到三行文字恭喜——你已经正式写了第一个循环。接着改个数字试试range(5)、range(10)看看输出变化。感受一下什么叫重复执行。③ for 循环遍历列表与字符串实操for循环最核心的能力是**“逐个取出来处理”**。场景一遍历列表一组数据students[小明,小红,小刚]fornameinstudents:print(f{name}你的作业交了吗)执行过程Python 先把小明赋值给name执行print再把小红赋值给name执行print……直到列表末尾。你可以试着往列表里加两个名字再跑一遍。场景二遍历字符串逐个字符wordPythonforchinword:print(ch)输出是 P、y、t、h、o、n 每个占一行。实用小技巧如果你想同时拿到下标和值用enumeratestudents[小明,小红,小刚]forindex,nameinenumerate(students):print(f第{index1}个同学叫{name})这个在日后处理 Excel 数据时极其常用。④ while 循环条件控制与动态交互实现while翻译成人话只要某条件为真就一直做。最简单的例子count0whilecount3:print(f当前计数{count})countcount1# 这行极其重要如果删掉count count 1count永远等于 0永远小于 3——死循环电脑会卡爆。动态交互实战写一个猜数字游戏不用随机数先固定答案secret7guess0whileguess!secret:guessint(input(猜一个数字))ifguesssecret:print(小了)elifguesssecret:print(大了)print(恭喜猜对了)运行这段代码它会一直问你要数字直到你输入 7。观察一下while的条件是guess ! secret只要成立就循环。猜对后条件变为False循环结束。⑤ break 与 continue 精准控制流程技巧这两个词是循环里的方向盘。break立即终止整个循环跳出去。foriinrange(10):ifi5:breakprint(i)# 输出 0 1 2 3 4到5就停了continue跳过本次循环的剩余代码直接进入下一次。foriinrange(5):ifi2:continueprint(i)# 输出 0 1 3 42被跳过了实战场景你遍历一批用户数据遇到已删除的用户就用continue跳过遇到管理员用户就用break停止因为只找第一个管理员。users[普通用户,已删除,普通用户,管理员,普通用户]foruinusers:ifu已删除:continueifu管理员:print(找到管理员了)breakprint(f处理{u})运行这个仔细看输出——已删除被跳过了遇到管理员后循环直接结束后面的普通用户没机会处理。⑥ 嵌套循环处理多维数据案例演示嵌套循环就是循环里面套循环。想象一个钟表秒针转一圈分针走一格分针转一圈时针走一格。二维表格场景你有 3 个班级每个班 4 个学生要逐个点名。classes[[A班-小明,A班-小红,A班-小刚,A班-小丽],[B班-张三,B班-李四,B班-王五,B班-赵六],[C班-刘一,C班-陈二,C班-杨三,C班-黄四]]forclass_roominclasses:# 外层遍历每个班print(f开始点名{class_room[0][:2]})forstudentinclass_room:# 内层遍历班里的每个人print(f{student})print(点名结束\n)执行时外层循环走一次内层循环走完一整轮。所以输出是A班4个人 → B班4个人 → C班4个人。九九乘法表是嵌套循环的经典foriinrange(1,10):# 外层1到9forjinrange(1,i1):# 内层1到iprint(f{j}×{i}{i*j},end )print()# 换行运行一下看看是不是你小学背的那个形状。⑦ 无限循环陷阱识别与安全退出方法无限循环条件永远为True代码永远跑不完。三种常见写法# 写法一直接写 TruewhileTrue:print(停不下来)# 写法二条件恒成立i0whilei10:print(i)# 忘了写 i 1# 写法三条件逻辑错误x5whilex!0:xx1# 越加离0越远安全退出方法用break做逃生门——这是最推荐的写法whileTrue:user_inputinput(输入 exit 退出)ifuser_inputexit:print(退出循环)breakprint(f你输入了{user_input})设置最大尝试次数防止意外max_attempts5attempt0whileattemptmax_attempts:attempt1# 做某事如果真的卡死了按Ctrl C强制中断程序在命令行里有效。⑧ 常见缩进错误与逻辑死循环排查新手 90% 的报错都是缩进问题。Python 用缩进来表示代码块——缩进一样表示属于同一层。错误示范 1缩进不一致foriinrange(3):print(i)print(完成)# 前面多了空格报错 IndentationError错误示范 2忘记缩进foriinrange(3):print(i)# 报错print 必须缩进逻辑死循环排查三步走检查循环变量是否在变化——有没有i i 1或i 1打印中间值调试——在循环里加print(f当前 i{i})看它有没有朝预期方向变化。检查条件方向——是还是是and还是or经常有人把while i 10写成while i 10结果一次都不执行或者反过来写成while i ! 10但i从 0 开始每次加 3永远到不了 10死循环。一个实用的调试习惯写循环时先把print加上确认逻辑对了再删掉。⑨ 循环性能优化与简洁写法进阶当你处理的数据量变大比如一万条以上循环效率就会变敏感。优化点 1减少不必要的计算# 不推荐每次循环都计算 len()foriinrange(len(my_list)):process(my_list[i])# 推荐直接遍历元素foriteminmy_list:process(item)优化点 2用列表推导式代替简单 for 循环# 传统写法squares[]foriinrange(10):squares.append(i*i)# 简洁写法列表推导式squares[i*iforiinrange(10)]列表推导式不仅更简洁执行速度也更快底层做了优化。优化点 3用sum()、max()等内置函数代替手写循环# 不推荐total0forninnumbers:totaln# 推荐totalsum(numbers)优化点 4while 能转 for 就转 forfor循环在 Python 内部做了优化通常比while快一些而且更安全不容易死循环。如果遍历次数是确定的优先用for。⑩ 综合实战构建自动化数据处理脚本把前面所有知识串起来做一个学生成绩统计脚本。需求有一个班级的成绩表姓名 三门课分数需要计算每个人的总分和平均分并标记优秀平均 90和需努力平均 60。完整代码# 数据每个学生三门课的成绩students[[张伟,88,92,78],[李娜,95,98,97],[王强,45,52,38],[赵敏,70,75,80],[陈静,90,91,89]]print(*40)print(学生成绩统计报告)print(*40)# 用于统计整体情况total_scores[]excellent_count0need_work_count0forstudentinstudents:namestudent[0]scoresstudent[1:]# 从第2个元素开始取分数# 计算总分和平均分totalsum(scores)avgtotal/len(scores)total_scores.append(total)# 判断等级ifavg90:level优秀 excellent_count1elifavg60:level需努力 need_work_count1else:level良好# 输出该生信息print(f{name}: 总分{total}平均{avg:.1f}【{level}】)print(*40)print(f班级人数{len(students)})print(f优秀人数{excellent_count})print(f需努力人数{need_work_count})print(f全班平均分{sum(total_scores)/len(total_scores):.1f})print(*40)运行这段代码你会看到一份完整的成绩报告。然后你自己动手改造这一步很重要添加一个新学生数据看输出是否自动更新。把良好的门槛改成 70 分以上看输出变化。再加一列排名按总分排序——提示用sorted()加key参数。如果遇到分数为负数或超过 100 的数据用continue跳过并提示数据异常。当你把这四点都改完并且跑通恭喜——你已经能用循环处理真实的数据了。最后说两句循环这东西光看是学不会的一定要亲手敲、亲手改、亲手把代码搞崩再修好。我建议你把这篇教程里的每一段代码都手动敲一遍改几个数字看看效果故意制造个死循环体验一下CtrlC的救命功能。遇到问题不要怕把报错信息复制到搜索引擎里十有八九有人踩过同样的坑——编程就是从抄代码到改代码再到写代码的过程而循环就是你迈出的第一步。加油。

相关新闻