news 2026/4/19 16:28:40

收集自己的每日消费金额,统计每周消费峰值,输出消费高峰日,并给出省钱建议。

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
收集自己的每日消费金额,统计每周消费峰值,输出消费高峰日,并给出省钱建议。

完整输出一个可运行的 Python 项目示例,用于记录每日消费、统计每周消费峰值、输出消费高峰日并给出省钱建议。

1. 实际应用场景描述

在日常生活中,很多人习惯用手机支付或现金消费,但往往缺乏对消费数据的系统化管理。

例如:

- 月底发现钱花光了,却不知道花在哪里。

- 想控制预算,但不知道哪几天花钱最多。

- 没有数据支撑,难以制定合理的省钱计划。

本程序基于大数据与智能管理课程中的数据采集、统计分析与可视化方法,帮助用户记录每日消费、自动统计每周消费峰值、识别消费高峰日,并基于规则给出个性化省钱建议。

2. 痛点分析

- 数据分散:消费记录可能分布在微信、支付宝、银行卡等多个平台。

- 缺乏统计:无法快速知道一周内哪天花钱最多。

- 无建议支持:即使知道花得多,也不知道如何改进。

- 手动记录麻烦:传统记账方式容易中断,数据不完整。

3. 核心逻辑讲解

1. 数据采集:用户输入每日消费金额(可扩展为从支付平台 API 导入)。

2. 数据存储:用列表或 CSV 文件存储日期和消费额。

3. 周统计:按自然周(周一至周日)分组,计算每周总消费。

4. 峰值检测:找出每周消费最高的一天。

5. 建议生成:根据消费模式(如餐饮占比高、娱乐支出多)给出省钱建议。

4. 代码模块化

项目结构

daily_expense_tracker/

├── main.py

├── expense_data.py

├── analyzer.py

├── advisor.py

└── README.md

"expense_data.py"

# 消费数据模块

import csv

from datetime import datetime, timedelta

DATA_FILE = "expenses.csv"

def init_data_file():

"""初始化 CSV 文件"""

try:

with open(DATA_FILE, 'x', newline='') as f:

writer = csv.writer(f)

writer.writerow(["date", "amount"])

except FileExistsError:

pass

def add_expense(date_str, amount):

"""添加一条消费记录"""

with open(DATA_FILE, 'a', newline='') as f:

writer = csv.writer(f)

writer.writerow([date_str, amount])

def load_expenses():

"""加载所有消费记录"""

expenses = []

try:

with open(DATA_FILE, 'r') as f:

reader = csv.DictReader(f)

for row in reader:

expenses.append({

"date": datetime.strptime(row["date"], "%Y-%m-%d"),

"amount": float(row["amount"])

})

except FileNotFoundError:

pass

return expenses

"analyzer.py"

# 消费分析模块

from collections import defaultdict

from datetime import datetime, timedelta

def get_week_start(date):

"""获取给定日期所在周的周一"""

return date - timedelta(days=date.weekday())

def analyze_weekly_peaks(expenses):

"""

分析每周消费峰值

:param expenses: list of dicts with 'date' and 'amount'

:return: dict, key为周开始日期字符串,value为该周的消费峰值日及金额

"""

weekly_data = defaultdict(lambda: defaultdict(float))

for exp in expenses:

week_start = get_week_start(exp["date"]).strftime("%Y-%m-%d")

day_str = exp["date"].strftime("%Y-%m-%d")

weekly_data[week_start][day_str] += exp["amount"]

peaks = {}

for week, days in weekly_data.items():

peak_day = max(days.items(), key=lambda x: x[1])

peaks[week] = {

"peak_date": peak_day[0],

"peak_amount": round(peak_day[1], 2)

}

return peaks

"advisor.py"

# 省钱建议模块

def generate_advice(peaks, expenses):

"""

根据消费峰值生成建议

:param peaks: 每周峰值数据

:param expenses: 所有消费记录

:return: list of advice strings

"""

advice_list = []

# 计算餐饮类消费占比(假设金额<100为餐饮,>200为大额)

food_count = sum(1 for e in expenses if e["amount"] < 100)

total_count = len(expenses)

if total_count > 0 and food_count / total_count > 0.5:

advice_list.append("餐饮消费占比较高,建议减少外卖频率,尝试自己做饭。")

# 检查是否有连续多天高消费

high_spend_days = [e["date"].strftime("%Y-%m-%d") for e in expenses if e["amount"] > 200]

if len(high_spend_days) >= 3:

advice_list.append("检测到多天高额消费,建议提前规划大额支出,避免冲动购物。")

if not advice_list:

advice_list.append("消费较为均衡,继续保持!")

return advice_list

"main.py"

# 主程序入口

from expense_data import init_data_file, add_expense, load_expenses

from analyzer import analyze_weekly_peaks

from advisor import generate_advice

def main():

init_data_file()

# 示例数据录入(实际应用中可改为用户输入或API导入)

sample_data = [

("2026-01-12", 80),

("2026-01-13", 250),

("2026-01-14", 90),

("2026-01-15", 300),

("2026-01-16", 70),

("2026-01-17", 60),

("2026-01-18", 400)

]

for date_str, amount in sample_data:

add_expense(date_str, amount)

expenses = load_expenses()

peaks = analyze_weekly_peaks(expenses)

print("=== 每周消费峰值 ===")

for week, data in peaks.items():

print(f"周开始于 {week}, 消费高峰日: {data['peak_date']}, 金额: ¥{data['peak_amount']}")

advice = generate_advice(peaks, expenses)

print("\n=== 省钱建议 ===")

for a in advice:

print("- " + a)

if __name__ == "__main__":

main()

5. README.md

# Daily Expense Tracker

一个基于 Python 的个人消费分析工具,可统计每周消费峰值、识别高峰日并给出省钱建议。

## 功能

- 记录每日消费金额

- 按周统计消费峰值

- 输出消费高峰日

- 基于规则生成省钱建议

## 使用方法

1. 克隆或下载本项目

2. 确保已安装 Python 3.x

3. 运行:

bash

python main.py

## 项目结构

- `main.py`:主程序入口

- `expense_data.py`:数据读写

- `analyzer.py`:消费分析

- `advisor.py`:建议生成

## 扩展方向

- 接入支付平台 API 自动导入数据

- 增加分类统计(餐饮、交通、娱乐等)

- 使用 Matplotlib 绘制消费趋势图

6. 使用说明

1. 运行

"main.py" 会自动创建

"expenses.csv" 并写入示例数据。

2. 可修改

"sample_data" 为真实消费记录。

3. 程序会输出每周消费高峰日及金额,并打印省钱建议。

4. 后续可扩展为交互式输入或图形界面。

7. 核心知识点卡片

知识点 说明

CSV 文件操作 用

"csv" 模块实现数据持久化

日期处理 使用

"datetime" 和

"timedelta" 计算周起始日

分组统计 用

"defaultdict" 按周和日分组消费数据

规则引擎 基于简单条件生成建议

模块化设计 数据、分析、建议分离,便于维护

大数据思维 从日常小数据中发现规律,指导行为优化

8. 总结

本项目将大数据与智能管理课程中的数据采集、统计分析、规则决策方法应用于个人消费管理,解决了消费记录分散、缺乏统计、无建议支持的痛点。

通过模块化设计和清晰的规则引擎,用户可以快速识别消费高峰并获得个性化省钱建议。未来可结合机器学习预测消费趋势,并接入真实支付数据,打造完整的智能理财助手。

如果你愿意,可以加上 Matplotlib 可视化每周消费柱状图,让数据更直观。

利用AI高效解决实际问题,如果你觉得这个工具好用,欢迎关注我!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 8:01:23

攻克低照度检测难题:YOLOv11主干网络增强新方案PE-YOLO详解

购买即可解锁300+YOLO优化文章,并且还有海量深度学习复现项目,价格仅需两杯奶茶的钱,别人有的本专栏也有! 文章目录 YOLOv11低照度增强主干网络PE-YOLO:原理与完整实现教程 算法核心原理 物理模型基础 网络架构设计 完整代码实现 环境配置与依赖 PE模块网络定义 集成PE模…

作者头像 李华
网站建设 2026/4/18 14:44:18

春季营销图片踩坑盘点:10个清新素材网站+3个避坑技巧

春季营销是品牌抢占用户注意力的黄金时期&#xff0c;一张清新自然的图片能瞬间抓住眼球&#xff0c;提升转化率。但很多人在找适合春季营销的清新图片资源时&#xff0c;容易踩坑——比如用了侵权图片导致法律纠纷&#xff0c;或者图片风格和品牌调性不符&#xff0c;浪费了营…

作者头像 李华
网站建设 2026/4/17 22:41:04

day133—快慢指针—链表的中间结点(LeetCode-876)

题目描述给你单链表的头结点 head &#xff0c;请你找出并返回链表的中间结点。如果有两个中间结点&#xff0c;则返回第二个中间结点。示例 1&#xff1a;输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[3,4,5] 解释&#xff1a;链表只有一个中间结点&#xff0c;值为 3…

作者头像 李华
网站建设 2026/4/17 20:40:14

Screaming Frog Log File Analyser(尖叫青蛙网络爬虫软件)

链接&#xff1a;https://pan.quark.cn/s/07db6190d7321、在本站下载解压软件得到安装包以及注册机; 2、双击.exe运行安装&#xff0c;如图所示&#xff0c;选择安装方式&#xff0c;默认安装和自定义安装; 3、勾选Custom&#xff0c;如图所示&#xff0c;点击浏览选择软件安装…

作者头像 李华