内容无营销、无引流、偏工程化与技术教学,适合作为课程作业 / 博客 / 开源 Demo。
一、实际应用场景描述
假设你住在 一线城市的小户型公寓(约 20–40㎡):
- 衣柜空间有限,只能存放 当季 + 少量过渡衣物
- 四季温差明显,但换季时间不固定(倒春寒、秋老虎)
- 每次换季都要:翻衣柜 → 判断哪些收起来 → 哪些拿出来 → 经常拿错
- 常出现:
- 冬天把厚羽绒服收早了,突然降温没衣服穿
- 夏天翻出厚卫衣占地方
- 收纳混乱,重复购买类似衣物
你希望有一个自动化程序:
输入当前城市天气 + 衣柜清单
自动给出:该穿什么 + 该收什么 + 该拿出来什么
二、引入痛点(工程视角)
维度 痛点
空间 小户型衣柜容量 < 总衣物量
时间 换季决策依赖主观经验
信息 气温变化快,人工判断滞后
维护 衣物状态无记录,容易遗忘
扩展 无法量化“收纳效率”
👉 本质问题:缺乏一个“衣物生命周期管理系统”
三、核心逻辑讲解(系统设计)
1️⃣ 系统抽象模型
输入层
├─ 当前气温(手动 or API)
└─ 衣物数据库(JSON)
处理层
├─ 季节判定模块
├─ 衣物适用性计算
└─ 收纳决策引擎
输出层
├─ 今日穿搭推荐
└─ 收纳 / 取出建议
2️⃣ 关键规则(简化版)
气温区间 季节标签
≥ 28℃ 夏季
18–27℃ 春季 / 秋季
≤ 17℃ 冬季
每件衣物有属性:
{
"name": "羽绒服",
"min_temp": -10,
"max_temp": 10,
"volume": 4,
"in_storage": true
}
3️⃣ 决策逻辑
- ✅ 当前气温 落在衣物适用区间 → 建议取出 / 穿着
- ❌ 不在区间 → 建议收纳
- 📦 优先收纳 体积大 + 不适用的衣物
四、Python 代码实现(模块化 + 注释清晰)
📁 项目结构
closet/
├── main.py
├── config.py
├── season.py
├── wardrobe.py
├── recommender.py
└── data/
└── clothes.json
"data/clothes.json"
[
{
"id": 1,
"name": "羽绒服",
"min_temp": -10,
"max_temp": 10,
"volume": 4,
"in_storage": true
},
{
"id": 2,
"name": "卫衣",
"min_temp": 10,
"max_temp": 22,
"volume": 2,
"in_storage": false
},
{
"id": 3,
"name": "T恤",
"min_temp": 20,
"max_temp": 35,
"volume": 1,
"in_storage": false
}
]
"config.py"
# 温度阈值配置
SUMMER_THRESHOLD = 28
WINTER_THRESHOLD = 17
"season.py"
from config import SUMMER_THRESHOLD, WINTER_THRESHOLD
def get_season(temp: float) -> str:
"""
根据当前气温判断季节
"""
if temp >= SUMMER_THRESHOLD:
return "summer"
elif temp <= WINTER_THRESHOLD:
return "winter"
else:
return "transition"
"wardrobe.py"
import json
def load_wardrobe(path: str) -> list:
"""
加载衣物数据
"""
with open(path, "r", encoding="utf-8") as f:
return json.load(f)
"recommender.py"
def recommend(temp: float, wardrobe: list) -> dict:
"""
根据气温生成穿搭与收纳建议
"""
wear = []
store = []
take_out = []
for item in wardrobe:
suitable = item["min_temp"] <= temp <= item["max_temp"]
if suitable and item["in_storage"]:
take_out.append(item["name"])
elif suitable and not item["in_storage"]:
wear.append(item["name"])
elif not suitable and not item["in_storage"]:
store.append(item["name"])
return {
"wear": wear,
"store": store,
"take_out": take_out
}
"main.py"
from season import get_season
from wardrobe import load_wardrobe
from recommender import recommend
def main():
temp = float(input("请输入当前气温(℃):"))
wardrobe = load_wardrobe("data/clothes.json")
season = get_season(temp)
result = recommend(temp, wardrobe)
print(f"\n当前季节判定:{season}")
print("\n✅ 建议穿着:")
print(result["wear"] or "暂无")
print("\n📦 建议收纳:")
print(result["store"] or "暂无")
print("\n🧥 建议取出:")
print(result["take_out"] or "暂无")
if __name__ == "__main__":
main()
五、README.md
# Closet Rotation System(四季衣物收纳轮换程序)
## 项目简介
一个基于 Python 的轻量级衣物管理工具,
根据气温自动推荐穿搭与收纳策略,适用于小户型居住环境。
## 功能特性
- 季节自动判定
- 衣物适用性匹配
- 穿搭 / 收纳 / 取出建议
- JSON 数据驱动,易扩展
## 使用方式
bash
pip install -r requirements.txt
python main.py
## 数据结构
见 `data/clothes.json`
## 适用人群
- 小户型居住者
- 极简主义者
- 想量化生活决策的人
六、使用说明(用户视角)
1. 编辑
"clothes.json",录入你的衣物
2. 运行程序
3. 输入当前气温
4. 按提示执行收纳操作
✅ 无需联网
✅ 不依赖复杂依赖
✅ 可长期维护
七、核心知识点卡片(去营销化)
知识点 说明
数据建模 用 JSON 描述现实对象
条件逻辑 温度区间判断
模块化设计 每个文件单一职责
CLI 程序 终端交互入门
工程思维 把生活问题抽象成系统
可扩展性 可接入天气 API / 数据库
八、总结
这个项目不是“智能穿搭 AI”,而是一次创业实验课式的工程练习:
- 从真实生活痛点出发
- 用最简单的技术解决问题
- 强调可解释性、可维护性、低成本
利用AI解决实际问题,如果你觉得这个工具好用,欢迎关注长安牧笛!