当前位置:首页>python>Python 实战项目合集|自动记账小程序(可视化 + 数据统计,新手 1 小时搞定)

Python 实战项目合集|自动记账小程序(可视化 + 数据统计,新手 1 小时搞定)

  • 2026-10-11 03:53:50
Python 实战项目合集|自动记账小程序(可视化 + 数据统计,新手 1 小时搞定)

大家好!

今天给大家带来一个超实用、能落地、每天都能用的 Python 实战项目 ——「自动记账小程序」。

不用再手动记在本子上,不用再做复杂的 Excel 表格,输入收支信息,程序自动:

✅ 保存记录

✅ 统计收支

✅ 生成可视化报表

✅ 导出 Excel

全程复制代码就能用,新手也能 1 小时搞定,学会直接提升生活 / 办公效率!


一、这个记账小程序能解决什么问题?

🚫 手动记账容易漏记、丢记录

🚫 Excel 统计收支麻烦,还要手动算总和

🚫 想看看月度消费趋势,还要自己做图表

✅ 输入即保存,数据永不丢

✅ 一键统计总收入 / 总支出 / 结余

✅ 自动生成消费趋势图,一眼看懂钱花在哪

✅ 支持导出 Excel,方便备份 / 分享


二、准备工作(2 分钟搞定)

打开命令提示符,安装所需依赖:

pip install pandas matplotlib openpyxl

三、完整代码(直接复制即用)

import osimport pandas as pdimport matplotlib.pyplot as pltfrom datetime import datetime# 全局配置FILE_NAME = "记账数据.xlsx"# 设置中文字体,避免图表乱码plt.rcParams["font.sans-serif"] = ["SimHei"]plt.rcParams["axes.unicode_minus"] = Falsedef init_file():    """初始化记账文件(首次运行自动创建)"""    if not os.path.exists(FILE_NAME):        # 创建Excel文件,包含列名        df = pd.DataFrame(columns=["日期", "类型", "金额", "备注"])        df.to_excel(FILE_NAME, index=False)        print("✅ 初始化记账文件成功!")def add_record():    """添加记账记录"""    print("\n===== 添加记账记录 =====")    # 获取用户输入    date = datetime.now().strftime("%Y-%m-%d")  # 默认当前日期    custom_date = input(f"请输入日期(格式:YYYY-MM-DD,默认{date}):")    if custom_date:        date = custom_date    type_ = input("请输入类型(收入/支出):")    while type_ not in ["收入", "支出"]:        print("❌ 类型只能是「收入」或「支出」!")        type_ = input("请重新输入类型(收入/支出):")    # 金额校验    while True:        try:            money = float(input("请输入金额:"))            break        except ValueError:            print("❌ 金额必须是数字!请重新输入")    remark = input("请输入备注(如:工资、吃饭、购物):")    # 读取原有数据,添加新记录    df = pd.read_excel(FILE_NAME)    new_record = pd.DataFrame({        "日期": [date],        "类型": [type_],        "金额": [money],        "备注": [remark]    })    df = pd.concat([df, new_record], ignore_index=True)    df.to_excel(FILE_NAME, index=False)    print("✅ 记账成功!")def show_statistics():    """查看收支统计"""    if not os.path.exists(FILE_NAME):        print("❌ 暂无记账数据,请先添加记录!")        return    df = pd.read_excel(FILE_NAME)    if df.empty:        print("❌ 暂无记账数据,请先添加记录!")        return    # 统计总收支    total_income = df[df["类型"] == "收入"]["金额"].sum()    total_outcome = df[df["类型"] == "支出"]["金额"].sum()    balance = total_income - total_outcome    print("\n===== 收支统计 =====")    print(f"💰 总收入:{total_income:.2f} 元")    print(f"💸 总支出:{total_outcome:.2f} 元")    print(f"📊 结余:{balance:.2f} 元")    # 按月统计    df["日期"] = pd.to_datetime(df["日期"])    df["月份"] = df["日期"].dt.to_period("M")    monthly_stats = df.groupby(["月份", "类型"])["金额"].sum().unstack(fill_value=0)    print("\n===== 月度收支统计 =====")    print(monthly_stats)    # 生成可视化图表    monthly_stats.plot(kind="bar", figsize=(10, 6))    plt.title("月度收支趋势图", fontsize=14)    plt.xlabel("月份")    plt.ylabel("金额(元)")    plt.xticks(rotation=45)    plt.tight_layout()    plt.savefig("收支趋势图.png")    plt.show()    print("✅ 收支趋势图已保存为:收支趋势图.png")def show_all_records():    """查看所有记账记录"""    if not os.path.exists(FILE_NAME):        print("❌ 暂无记账数据,请先添加记录!")        return    df = pd.read_excel(FILE_NAME)    if df.empty:        print("❌ 暂无记账数据,请先添加记录!")        return    print("\n===== 所有记账记录 =====")    print(df.to_string(index=False))def main():    """主程序"""    init_file()    while True:        print("\n===== Python自动记账小程序 =====")        print("1. 添加记账记录")        print("2. 查看收支统计(含图表)")        print("3. 查看所有记录")        print("4. 退出程序")        choice = input("\n请输入操作编号(1-4):")        if choice == "1":            add_record()        elif choice == "2":            show_statistics()        elif choice == "3":            show_all_records()        elif choice == "4":            print("👋 感谢使用,再见!")            break        else:            print("❌ 输入错误,请输入1-4之间的数字!")if __name__ == "__main__":    main()

四、使用教程(超详细,新手必看)

步骤 1:保存代码

把上面的完整代码复制,保存为account_book.py(任意文件夹均可)。

步骤 2:运行程序

双击account_book.py,或在命令行输入:

python account_book.py

步骤 3:操作菜单说明

运行后会看到主菜单:

===== Python自动记账小程序 =====1. 添加记账记录2. 查看收支统计(含图表)3. 查看所有记录4. 退出程序

👉 操作 1:添加记账记录

输入1,按提示填写:

  • 日期:默认当前日期,也可自定义(如 2026-03-22)
  • 类型:只能选「收入」或「支出」(输入错误会提示重新输入)
  • 金额:数字(如 50、100.5),非数字会自动校验
  • 备注:比如「工资」「午餐」「购物」

👉 操作 2:查看收支统计

输入2,程序会自动:

  1. 计算总收入、总支出、结余
  2. 按月份统计收支
  3. 生成柱状图并保存为收支趋势图.png

👉 操作 3:查看所有记录

输入3,会列出所有记账记录,清晰明了。

👉 操作 4:退出程序

输入4,安全退出。


五、核心功能解析(新手也能懂)

1. 数据持久化

用 Excel 文件保存数据,关闭程序后记录不会丢失,随时可查看 / 修改。

2. 数据校验

  • 类型只能选「收入 / 支出」,避免输入错误
  • 金额必须是数字,自动过滤非数字输入
  • 日期格式自动处理,兼容自定义日期

3. 数据统计

  • 总收支、结余自动计算
  • 按月分组统计,清晰看到每月消费情况

4. 可视化图表

自动生成柱状图,直观展示月度收支趋势,比纯数字更易理解。


六、扩展优化建议(进阶学习)

学会基础版本后,你可以尝试优化:

  1. 添加「删除 / 修改记录」功能
  2. 按类别统计(如餐饮、交通、工资)
  3. 设置月度预算,超支自动提醒
  4. 对接云盘,实现多设备同步

七、新手常见问题解答

Q1:运行报错「找不到 pandas」?

A:先执行pip install pandas openpyxl matplotlib安装依赖。

Q2:中文乱码?

A:代码已内置中文字体配置,无需额外设置。

Q3:数据保存在哪里?

A:和代码文件同目录的「记账数据.xlsx」文件里,可直接用 Excel 打开编辑。

Q4:可以在手机上用吗?

A:可以安装 Python 手机端(如 Pydroid),复制代码即可运行。


结语

这个自动记账小程序,看似简单,却融合了 Python 的核心应用:

✅ 文件操作(Excel 读写)

✅ 数据处理(pandas 统计)

✅ 可视化(matplotlib 画图)

✅ 交互逻辑(菜单选择、用户输入)

学会它,不仅能拥有一个实用的记账工具,更能巩固 Python 核心技能,为后续学习更复杂的项目打下基础。

如果觉得这个项目有用,欢迎点赞 + 在看 + 转发,让更多新手能上手实战!


总结

  1. 本次的自动记账小程序基于pandas和matplotlib实现,支持收支记录、数据统计、可视化图表生成,数据持久化保存在 Excel 中;
  2. 代码内置数据校验逻辑,能避免新手输入错误,运行前需安装pandas、openpyxl、matplotlib三个依赖库;
  3. 程序操作简单,通过菜单选择即可完成所有功能,新手可在此基础上扩展删除 / 修改记录、预算提醒等功能。

最新文章

随机文章