写了个记账本,我的第一个 Python 项目
暑假太无聊了,学了半年 Python 也没写过像样的东西,就想搞个小项目练练手。
本来想做爬虫,但感觉太复杂,万一被封 IP 就懵了。后来想到记账本,需求简单,就它了。
第一版:一个文件搞定
就写了一个 main.py,全部塞进去:
- 输入类型、金额、分类
- 存到列表里
- 退出时写进
data.json - 下次打开再读出来
能跑,但代码很乱,所有东西混在一起。而且收入和支出用同一套分类,我记收入的时候选了个"餐饮",感觉怪怪的。
加了一堆功能
做着做着想加东西:
- 按月份查:输入
2026-08只看 8 月的账 - 报表:看看这个月花了多少钱,花哪了
- 导出 CSV:给 Excel 打开
- 删除和修改:记错了能改,不用删了重记
报表功能写的时候卡了一下,不知道怎么按分类汇总。后来用字典累加,再排序,搞定了。
拆文件
代码越来越长,找东西费劲。看了一些教程,说要拆成多个文件:
models.py:放了个Transaction类,其实一开始用字典就行,但想试试类怎么用utils.py:颜色输出、金额输入检查,从主文件抽出来的小工具storage.py:读写 JSON,就两个函数manager.py:记账、查账、删账这些逻辑main.py:只剩菜单和调用
拆完感觉清晰多了,虽然不知道拆得对不对,但比一团乱麻好。
踩坑记录
Git 身份没配
第一次 git commit 报错,让我告诉 Git 我是谁。搜了一下才知道要设 user.name 和 user.email。
推不上 GitHub
Failed to connect to github.com,以为是密码错了,其实是网络问题。换了手机热点,还是不行,后来用镜像地址才推上去。
收入和支出分类混了
一开始不管收入支出,都显示一样的分类。后来加了个判断,收入显示工资奖金那些,支出显示餐饮交通那些。
学到了什么
- Python 的字典列表操作比之前熟练了
- 会用 Git 了,虽然经常报错,但知道怎么搜了
- 第一次理解"为什么要拆文件",虽然拆得可能不好
- 写 README 很重要,不然别人看不懂你做了什么
代码
下一步
想加个数据库,不用 JSON 存了。然后再做成网页版,能在手机上用。