《从零写一个命令行记账本:我的第一个 Python 项目》

0 阅读2分钟

写了个记账本,我的第一个 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.nameuser.email

推不上 GitHub

Failed to connect to github.com,以为是密码错了,其实是网络问题。换了手机热点,还是不行,后来用镜像地址才推上去。

收入和支出分类混了

一开始不管收入支出,都显示一样的分类。后来加了个判断,收入显示工资奖金那些,支出显示餐饮交通那些。


学到了什么

  • Python 的字典列表操作比之前熟练了
  • 会用 Git 了,虽然经常报错,但知道怎么搜了
  • 第一次理解"为什么要拆文件",虽然拆得可能不好
  • 写 README 很重要,不然别人看不懂你做了什么

代码

github.com/kamo409/bud…


下一步

想加个数据库,不用 JSON 存了。然后再做成网页版,能在手机上用。