大家好,我是正在实战各种AI项目的程序员晚枫。
上篇我们学了条件判断,程序能做选择了。这篇来学循环——让程序自动重复做事。
学完这篇,你就能批量处理100条、1000条、10000条数据,真正实现自动化办公。
为什么需要循环?
先看一个痛苦的需求:给100个人发欢迎消息。
不用循环(痛苦模式):
1 | print("欢迎张三!") |
用循环(优雅模式):
1 | names = ["张三", "李四", "王五", ...] # 100个名字 |
一句话,循环帮你省了99%的重复代码。
for循环:遍历(一件一件地处理)
for循环的工作方式,就像服务员依次接待排队的客人——来一个处理一个。
基本语法
1 | fruits = ["苹果", "香蕉", "橙子"] |
逐行解析:
1 | fruits 的每个元素,依次取出,命名为 fruit |
运行结果:
1 | 我要吃:苹果 |
range函数:生成数字序列
如果想按顺序执行5次,用 range() 生成数字序列:
1 | # range(5) 生成:0, 1, 2, 3, 4 |
运行结果:
1 | 第1次执行 |
💡 记住:
range(5)是从0开始的,到5之前结束,不包含5。如果想要1到5,用range(1, 6)。
while循环:条件满足就一直做
for 适合知道要循环多少次的情况。while 适合不知道要循环多少次,只要条件满足就一直做的情况。
场景举例:猜数字游戏
你不知道对方要猜几次,只能一直猜,直到猜对为止:
1 | secret = 7 # 正确答案 |
运行结果(假设正确答案7):
1 | 猜一个数字(1-10):3 |
⚠️ while的坑:必须确保循环条件最终会变成
False,否则会陷入无限循环(程序卡死)。每次循环结束,必须让条件朝着False的方向变化。
循环控制:break 和 continue
break:中途退出
遇到某个条件就不做了,直接跳出整个循环:
1 | for i in range(10): |
运行结果:
1 | 0 |
continue:跳过这次
遇到某个条件跳过这一次,继续下一个:
1 | for i in range(5): |
运行结果:
1 | 0 |
for和while:什么时候用哪个?
| 场景 | 用哪个 | 原因 |
|---|---|---|
| 遍历列表 | for | 已知有多少个元素 |
| 执行固定次数 | for + range | 知道要执行几次 |
| 不知道要几次 | while | 等某个条件满足 |
| 用户输入验证 | while True | 等用户输对为止 |
遍历字典:顺便取出名字和值
1 | person = {"姓名": "张三", "年龄": 25, "城市": "北京"} |
运行结果:
1 | 姓名 |
同时遍历两个列表:zip
如果有名字列表和年龄列表,想合并显示:
1 | names = ["张三", "李四", "王五"] |
运行结果:
1 | 张三,25岁 |
嵌套循环:九九乘法表
一个循环里再套一个循环:
1 | for i in range(1, 10): # 外层:1到9 |
运行结果:
1 | 1×1=1 |
避坑指南
❌ 坑1:忘记更新循环变量(while)
1 | count = 0 |
❌ 坑2:在循环中修改正在遍历的列表
1 | numbers = [1, 2, 3, 4, 5] |
实战练习:批量重命名文件夹里的文件
把下载文件夹里的文件统一加上日期前缀:
1 | import os |
运行结果(模拟):
1 | 报告.docx → 2026-04-16_报告.docx |
📚 推荐:Python 零基础实战营
系统学习Python,推荐这个免费入门课程 👇
| 特点 | 说明 |
|---|---|
| 🎯 专为0基础设计 | 门槛低,上手快 |
| 📹 配套视频讲解 | 配合文章学习效果更好 |
| 💬 专属答疑群 | 遇到问题有人带 |
| 🎁 实体书赠送 | 优秀学员送《Python编程从入门到实践》 |
本讲小结
| 概念 | 说明 |
|---|---|
for item in 列表: | 依次取出每个元素来处理 |
range(n) | 生成 0 到 n-1 的数字序列 |
while 条件: | 条件满足就一直做 |
break | 退出整个循环 |
continue | 跳过本次,进入下一次 |
.items() | 同时遍历字典的键和值 |
zip(a, b) | 同时遍历两个列表 |
下节预告
掌握了循环,下一篇来学函数——把一段代码打包成一个工具,想用就用,让代码复用更方便。
课程导航
下一篇: Python函数基础-从定义到调用
PS:循环是自动化的核心——搞定了循环,你就搞定了批量处理。生活中有什么重复性的事,试试用循环来实现吧!
