1️⃣ 实际应用场景描述 & 痛点引入
在数字化生活中,人们每天使用手机的时间很长,但往往不清楚时间都花在了哪里。
尤其是学生、上班族,可能娱乐时间过长,影响工作与学习。
痛点:
- 无法量化各类应用的使用占比。
- 容易沉迷娱乐,忽视工作与学习。
- 缺乏科学的时间管理建议。
目标:
输入各应用的使用时长,自动分类为娱乐/工作/学习,计算占比,并给出健康使用建议。
2️⃣ 核心逻辑讲解
我们假设:
- 应用分类规则(可自定义):
- 娱乐:短视频、游戏、社交、视频等。
- 工作:邮件、办公软件、项目管理等。
- 学习:阅读、教育类 App 等。
- 统计总时长,计算各类占比。
- 根据占比给出建议(如娱乐占比过高则提醒减少)。
公式:
\text{占比} = \frac{\text{该类总时长}}{\text{所有应用总时长}} \times 100\%
3️⃣ 模块化代码 + 详细注释
文件结构
screen_time_analysis/
│
├── main.py # 主程序入口
├── classifier.py # 应用分类模块
├── analyzer.py # 统计分析模块
├── advisor.py # 健康建议模块
└── README.md # 使用说明
"classifier.py"
# classifier.py
def classify_app(app_name):
"""
根据应用名称分类
:param app_name: 应用名
:return: 类别 ('entertainment', 'work', 'study')
"""
entertainment_keywords = ['抖音', '快手', '王者', '吃鸡', '微信', '微博', 'B站', 'YouTube', 'Netflix']
work_keywords = ['邮箱', 'Word', 'Excel', 'PPT', '钉钉', '企业微信', 'Jira', 'Trello']
study_keywords = ['知乎', '得到', 'Kindle', 'Coursera', '学堂在线', '百词斩']
app_lower = app_name.lower()
for kw in entertainment_keywords:
if kw.lower() in app_lower:
return 'entertainment'
for kw in work_keywords:
if kw.lower() in app_lower:
return 'work'
for kw in study_keywords:
if kw.lower() in app_lower:
return 'study'
return 'unknown' # 未知类别
"analyzer.py"
# analyzer.py
def analyze_usage(app_usage):
"""
统计各类使用时长及占比
:param app_usage: dict {应用名: 使用时长(分钟)}
:return: dict {类别: 总时长}, 总时长
"""
category_times = {'entertainment': 0, 'work': 0, 'study': 0, 'unknown': 0}
total_time = 0
for app, duration in app_usage.items():
category = classify_app(app)
category_times[category] += duration
total_time += duration
# 计算占比
percentages = {}
for cat, time in category_times.items():
percentages[cat] = (time / total_time * 100) if total_time > 0 else 0
return category_times, percentages, total_time
"advisor.py"
# advisor.py
def give_advice(category_times, percentages):
"""
根据占比给出健康建议
"""
advice = []
if percentages['entertainment'] > 50:
advice.append("⚠️ 娱乐时间过长,建议每天控制在50%以内,多安排工作与学习。")
elif percentages['entertainment'] > 30:
advice.append("💡 娱乐时间适中,可适当增加学习时间。")
else:
advice.append("✅ 娱乐时间控制良好。")
if percentages['work'] < 20:
advice.append("📌 工作时间较少,建议提升工作效率,避免拖延。")
else:
advice.append("👍 工作时间充足。")
if percentages['study'] < 10:
advice.append("📚 学习时间偏少,建议每天至少安排10%时间用于学习。")
else:
advice.append("🎓 学习时间安排合理。")
return advice
"main.py"
# main.py
from analyzer import analyze_usage
from advisor import give_advice
def main():
print("=== 手机应用使用时长分析器 ===")
app_usage = {}
n = int(input("请输入应用数量: "))
for _ in range(n):
app = input("应用名: ")
mins = float(input("使用时长(分钟): "))
app_usage[app] = mins
category_times, percentages, total_time = analyze_usage(app_usage)
print("\n📊 分类统计:")
for cat in ['entertainment', 'work', 'study', 'unknown']:
print(f"{cat}: {category_times[cat]:.1f} 分钟 ({percentages[cat]:.1f}%)")
print(f"\n总时长: {total_time:.1f} 分钟")
advice_list = give_advice(category_times, percentages)
print("\n💬 健康建议:")
for a in advice_list:
print(a)
if __name__ == "__main__":
main()
4️⃣ README.md
# 手机应用使用时长分析器
本程序根据输入的应用使用时长,自动分类为娱乐/工作/学习,计算占比,并给出健康使用建议。
## 使用说明
1. 运行程序:
bash
python main.py
2. 输入:
- 应用数量
- 每个应用的名称与使用分钟数
3. 输出:
- 各类别总时长与占比
- 健康使用建议
## 核心公式
占比 = 类别总时长 / 总时长 × 100%
5️⃣ 核心知识点卡片
知识点 说明
数据分类 根据关键词匹配应用类别
统计分析 计算总时长与占比
条件建议 根据占比阈值给出健康提示
模块化设计 分类、分析、建议分离
数字化生活 用数据管理时间,提升效率
6️⃣ 总结
通过该程序,我们实现了:
- 自动分类手机应用使用时长。
- 量化占比,直观了解时间分配。
- 个性化建议,帮助用户养成健康数字生活习惯。
- 在智能制造与数字化工厂中,这种数据采集+分析+反馈的模式同样适用于设备运行状态监控、生产效率优化等场景。
如果你愿意,还可以扩展这个程序,加入每日趋势图、跨天数据累积、与屏幕时间API对接等,让它更接近真实的数字健康管理工具。
利用AI解决实际问题,如果你觉得这个工具好用,欢迎关注长安牧笛!