用 Python 完成一个不记金额、只记心理精力消耗的消费行为分析工具。内容保持去营销化、中立、可教学、可复用。
项目名:EnergyLedger — 心理精力记账本
一、实际应用场景描述
在心理健康与创新能力课程中,有一个常被忽视的观点:
金钱支出 ≠ 真正成本,心理精力的消耗才是创造力的隐形杀手
现实场景包括:
- 每天反复纠结“买还是不买”
- 为了凑单、比价耗费大量注意力
- 冲动消费后的自责与反复复盘
- 被推送、促销、算法诱导产生“被动决策”
传统记账软件只回答一个问题:
“花了多少钱?”
而 EnergyLedger 试图回答另一个问题:
“这次消费,消耗了我多少心理能量?”
二、引入痛点
现有记账工具的盲区
维度 传统记账 EnergyLedger
记录对象 金额 心理精力
关注点 财务健康 创造力保护
决策反馈 事后统计 实时觉察
目标 省钱 省心
真实痛点
- 很多“便宜消费”反而最耗神
- 高频小额决策逐步掏空创造力
- 缺乏量化“心理疲劳”的工具
- 创新者常因决策疲劳导致产出下降
三、核心逻辑讲解(先讲思想)
核心假设
每一次消费行为,本质是一次心理资源支出
程序不做的事
- ❌ 不记录金额
- ❌ 不计算余额
- ❌ 不做理财建议
程序做的事
1. 每次消费只记录 心理精力消耗等级
2. 自动打上 消费类型标签
3. 每日汇总:
- 精力总消耗
- 各类消费的精力占比
- 精力消耗排行榜(Top N)
4. 识别 高消耗低价值 的消费模式
精力等级设计(主观但结构化)
等级 含义
1 几乎无感(自动续费、习惯动作)
2 轻微犹豫
3 明显纠结
4 强烈内耗
5 严重消耗(后悔、自责、反复想)
四、代码模块化设计
项目结构
energy_ledger/
│
├── README.md
├── requirements.txt
├── main.py
├── core/
│ ├── record.py # 精力记录
│ ├── summary.py # 每日汇总
│ └── analyzer.py # 消耗排行与分析
└── data/
└── ledger.json
五、核心代码实现(Python)
1️⃣ 精力记录模块(record.py)
# core/record.py
import json
from datetime import datetime
from pathlib import Path
DATA_PATH = Path("data/ledger.json")
class EnergyRecord:
"""
记录单次消费的心理精力消耗
不记录金额,只记录精力
"""
def __init__(self):
DATA_PATH.parent.mkdir(exist_ok=True)
if not DATA_PATH.exists():
self._write([])
def _read(self):
with open(DATA_PATH, "r", encoding="utf-8") as f:
return json.load(f)
def _write(self, data):
with open(DATA_PATH, "w", encoding="utf-8") as f:
json.dump(data, f, ensure_ascii=False, indent=2)
def add_entry(self, category: str, energy_level: int, note: str = ""):
"""
energy_level: 1~5
"""
if not 1 <= energy_level <= 5:
raise ValueError("精力等级必须为 1~5")
entry = {
"timestamp": datetime.now().isoformat(),
"category": category,
"energy_level": energy_level,
"note": note
}
data = self._read()
data.append(entry)
self._write(data)
2️⃣ 汇总模块(summary.py)
# core/summary.py
from collections import Counter
from datetime import datetime
from .record import EnergyRecord
class DailySummary:
"""
每日心理精力消耗汇总
"""
def __init__(self):
self.record = EnergyRecord()
def today_summary(self):
today = datetime.now().date()
data = self.record._read()
today_data = [
item for item in data
if datetime.fromisoformat(item["timestamp"]).date() == today
]
total_energy = sum(item["energy_level"] for item in today_data)
category_counter = Counter(item["category"] for item in today_data)
return {
"total_energy": total_energy,
"by_category": dict(category_counter),
"count": len(today_data)
}
3️⃣ 分析与排行模块(analyzer.py)
# core/analyzer.py
from collections import defaultdict
from .summary import DailySummary
class EnergyAnalyzer:
"""
识别消耗创造力最多的消费类型
"""
def __init__(self):
self.summary = DailySummary()
def top_energy_consumers(self, top_n=3):
daily = self.summary.today_summary()
by_category = daily["by_category"]
# 按次数加权,可扩展为按总精力加权
ranked = sorted(
by_category.items(),
key=lambda x: x[1],
reverse=True
)
return ranked[:top_n]
def report(self):
daily = self.summary.today_summary()
top = self.top_energy_consumers()
print("\n🧠 今日心理精力消耗报告")
print(f"总消耗值:{daily['total_energy']}")
print(f"消费决策次数:{daily['count']}")
print("\n🔥 精力消耗 Top 类型:")
for category, count in top:
print(f"{category}: {count} 次")
4️⃣ 主程序(main.py)
# main.py
from core.record import EnergyRecord
from core.analyzer import EnergyAnalyzer
def main():
record = EnergyRecord()
analyzer = EnergyAnalyzer()
# 示例记录(实际可由用户输入)
record.add_entry("外卖纠结", 4, "选了半小时")
record.add_entry("网购比价", 5, "反复看评价")
record.add_entry("自动续费", 1, "无感")
analyzer.report()
if __name__ == "__main__":
main()
六、README 文件
# EnergyLedger
一个不记金额、只记录心理精力消耗的记账工具。
## 目的
- 识别消耗注意力和创造力的消费行为
- 减少无效决策带来的心理疲劳
- 建立“精力成本”而非“金钱成本”的意识
## 使用说明
### 运行环境
- Python 3.8+
### 启动
bash
python main.py
### 添加记录
修改 main.py 中的 `add_entry`:
python
record.add_entry("消费类型", 精力等级, "备注")
### 精力等级说明
1:几乎无感
2:轻微犹豫
3:明显纠结
4:强烈内耗
5:严重消耗
## 输出内容
- 今日心理精力总消耗
- 消费决策次数
- 精力消耗最高的消费类型排行
## 适用人群
- 创作者、开发者、研究者
- 希望降低决策疲劳的人群
- 心理健康与创新能力学习者
七、核心知识点卡片(去营销化)
卡片 1:心理精力作为第一性指标
- 关键词:自我损耗、决策疲劳、认知资源
- 要点:金钱是显性成本,精力是隐性成本
卡片 2:非量化数据的结构化记录
- 关键词:主观评分、等级映射、可观测性
- 要点:即使无法精确测量,也可以结构化记录
卡片 3:创造力保护策略
- 关键词:减少低频高耗决策、自动化、觉察
- 要点:不是少花钱,而是少“纠结”
八、总结(工程师视角)
**这个程序在“功能”上是残缺的——它没有金额、没有预算、没有报表。
但在“认知”上,它是完整的。**
技术层面
- 用极简的数据结构承载心理模型
- 明确拒绝“财务视角”,坚持“精力视角”
心理层面
- 把“纠结”变成可见数据
- 让创造力杀手现形
最终价值
不是告诉你:
“你花了多少钱”
而是提醒你:
“你今天,把最宝贵的注意力,浪费在了哪里”
利用AI解决实际问题,如果你觉得这个工具好用,欢迎关注长安牧笛!