你学 Python 时多半会遇到一个坎:语法书看了不少,真要写个东西却不知从哪下手。最快的突破方式不是再补一节语法课,而是直接做完三个能跑起来的小项目。本文给你三套完整可运行的代码——文件批量重命名器、天气查询小工具、个人记账本——它们分别练到字符串处理、网络请求和文件读写这三项最常用的基本功。照着敲一遍,你就能用 Python 解决自己生活里的小问题。今天这篇文章,编程狮就用最通俗的语言带你把这三个项目做出来。

一、为什么做项目比看教程更有效
很多人学 Python 卡在「看得懂、写不出」。原因在于教程是线性喂给你的:变量、循环、函数一个一个讲,你被动接收,但没机会把知识点串起来。做项目逼着你主动调用——你想重命名一百张照片,就得去查 os 模块怎么列目录、字符串怎么切片、循环怎么套。
💡 小提示:初学者最容易犯的错是「先收藏十个项目教程,然后一个都不做」。与其收藏,不如把一个项目完整敲三遍。
项目还会暴露你以为懂了其实没懂的地方。比如你以为自己会写函数,真要写一个带参数、有返回值的重命名函数时,才发现作用域和默认参数都含糊。这种「卡住」恰恰是最值钱的学习时刻。想系统补齐基础,可以先过一遍 编程实战 里的入门项目列表,按难度挑着练。
二、项目一:文件批量重命名器
这个项目的目标是:把一个文件夹里所有 IMG_001.jpg 这样的照片,按顺序改成 旅行_01.jpg、旅行_02.jpg。它练的是字符串处理加循环加文件操作三项基本功,而且不依赖任何第三方库,装好 Python 就能跑。
- 导入
os模块,拿到目标目录下的所有文件名; - 用
enumerate给每个文件编序号; - 用
os.rename执行重命名。
import os
folder = 'w3cschool_demo' # 存放照片的文件夹
for i, name in enumerate(os.listdir(folder), start=1):
old = os.path.join(folder, name)
new = os.path.join(folder, f"旅行_{i:02d}{os.path.splitext(name)[1]}")
os.rename(old, new)
print(f"你好!编程狮提醒:{name} -> {os.path.basename(new)}")
上面这段做的事情很简单:遍历文件夹,把每张图的扩展名(.jpg 或 .png)保留下来,前面拼上「旅行_序号」。{i:02d} 保证序号是两位,不会出现 旅行_1.jpg 和 旅行_10.jpg 排序错乱。print 里的「编程狮」只是演示文本,你可以换成自己的提示语。
⚠️ 注意:重命名是不可逆操作。正式跑之前,先把
os.rename换成print(new)干跑一遍,确认新名字符合预期再真正执行。
三、项目二:天气查询小工具
第二个项目练用 Python 写网络请求。思路是调用一个免费天气接口,把城市名传进去,把返回的 JSON 里的温度取出来打印。它覆盖 requests 库、HTTP 请求、JSON 解析三块,是走向「能联网的小工具」的关键一步。
import requests
city = "北京"
url = f"https://w3cschool-api.example/weather?q={city}"
resp = requests.get(url, timeout=5)
data = resp.json()
print(f"{city} 当前温度:{data['temp']}℃,天气:{data['desc']}")
这段代码把城市名拼进 URL,发一个 GET 请求,再把返回的字典里 temp 和 desc 两个字段取出来。具体用法可以在 Python 速查手册 里查清楚 requests 的常见写法——尤其要处理网络超时和接口报错,否则断网时脚本会直接崩。
💡 小提示:接口地址只是示例,正式用请替换成你申请到的真实天气 API,并妥善保管密钥,别写死在代码里提交到公开仓库。
四、项目三:个人记账本
第三个项目练用 Python 做文件读写:把每一笔收入和支出追加写进一个 csv 文件,再读出来算总账。它覆盖 csv 模块、文件追加模式、简单统计,能沉淀成一个长期可用的小工具。
import csv
record = {"date": "2026-08-26", "item": "w3cschool 课程", "amount": -99}
with open("bill.csv", "a", encoding="utf-8", newline="") as f:
w = csv.writer(f)
w.writerow([record["date"], record["item"], record["amount"]])
total = 0
with open("bill.csv", encoding="utf-8") as f:
for row in csv.reader(f):
total += int(row[2])
print(f"当前结余:{total} 元")
open(..., "a") 的 a 是追加模式,每次运行都在文件末尾加一行,不会覆盖历史。csv.writer 自动处理逗号分隔,比自己拼字符串稳妥。读的时候一行行累加金额,就得到总账。
五、怎么选着练与避坑清单
这三个 Python 项目难度递进,选型时可以照这张表对号入座:
| 项目 | 练到的能力 | 适合谁 |
|---|---|---|
| 批量重命名器 | 字符串加文件操作 | 完全零基础,先找手感 |
| 天气查询工具 | 网络请求加 JSON | 想做点能联网的东西 |
| 个人记账本 | 文件读写加统计 | 想沉淀长期可用的小工具 |
如果你时间有限,建议从批量重命名器开始,因为它不依赖网络、不依赖第三方库,装好 Python 就能跑。等基础稳了,再挑战需要 pip install requests 的天气工具。语法细节拿不准时,顺着 Python3教程 的章节路线走一遍函数与模块部分,比临时搜博客更稳。
真正动手时,下面这几个坑几乎人人都会踩,提前记住能省半天调试:
- 路径分隔符报错:Windows 上手动拼
folder + "\\" + name容易出错,一律用os.path.join让系统自己处理,跨平台也不会崩。 - 编码乱码:读中文内容时忘记加
encoding="utf-8",Windows 上容易报UnicodeDecodeError;写文件同样记得带上,否则生成的文件用记事本打开会是乱码。 - 接口超时没处理:天气工具没设
timeout,网络卡住时脚本会一直挂起不返回,记得加timeout=5并捕获异常。 - CSV 空行:Windows 写 CSV 忘了
newline="",打开后每行之间多一个空行,读的时候要兜底跳过或过滤空行。 - 依赖没装就跑:用到
requests却没pip install,会直接报ModuleNotFoundError,跑之前先确认虚拟环境里装齐了依赖。
把这些坑提前排掉,你的 Python 实战基本能一次跑通,你也就跨过了「看得懂写不出」这道坎。

总结
学 Python 不能只停留在看教程,动手做三个小项目才是真正迈过「写不出」这道坎的关键。批量重命名器练字符串与文件操作,天气工具练网络请求,记账本练文件读写与统计,三者合起来覆盖了日常最常用的基本功。
要点带走:
- 项目逼你主动串联知识点,比线性看教程更有效;
- 从零依赖的本地小工具起步,再挑战联网项目;
- 重命名、读写文件前先干跑,避免不可逆操作。
下一步建议把函数与模块章节再过一遍,你的项目代码会更干净,也能更顺手地把小工具分享到在线格式化工具做语法整理。
延伸学习
- 想系统学语法,Python零基础入门 从变量讲到面向对象,适合反复查阅;
- 边学边练,Python 自学入门攻略 给了更完整的进阶路线与项目清单;
- 写好的代码可以用 Python 代码格式化工具 做语法整理,粘进去就能一键排版。
常见问题
Q:完全没有基础,能直接做这三个项目吗?
A:可以,但建议先花半天过一遍变量、循环、函数三块。重命名器几乎不依赖前置知识,是最友好的起点。
Q:运行报错 ModuleNotFoundError: No module named 'requests' 怎么办?
A:说明没装这个库,在命令行执行 pip install requests 即可。天气项目才需要它,前两个项目用不到。
Q:项目做完之后还能往哪扩?
A:给重命名器加「按拍摄时间命名」,给记账本加「按月份汇总」,都是很自然的进阶练手。

免费 AI IDE



