基本要求:每做一件事,软件就会按照事情权重加相应的分数,总分数也会增加,要可视化页面
使用Python编写的一个简单的日常任务记录和评分系统,包括可视化页面。
首先,我们定义一个任务字典,其中包含各种日常任务及其对应的权重分数:
tasks = {'晨跑': 5,'阅读': 4,'学习新技能': 5,'健康饮食': 3,'与家人朋友交流': 4,'工作': 4,'打扫卫生': 2,'为他人提供帮助': 4,'个人爱好': 3,'充足睡眠': 3
}
然后,我们创建一个简单的图形用户界面,让用户可以选择自己完成的任务并提交。我们使用tkinter库来创建GUI:
import tkinter as tkdef submit_tasks():selected_tasks = [var.get() for var in task_vars if var.get()]score = sum(tasks[task] for task in selected_tasks)total_score.set(total_score.get() + score)result_label.config(text=f"今日得分: {score}, 总得分: {total_score.get()}")root = tk.Tk()
root.title("日常任务记录系统")task_vars = []
for task in tasks:var = tk.StringVar()tk.Checkbutton(root, text=task, variable=var, onvalue=task, offvalue="").pack()task_vars.append(var)total_score = tk.IntVar()
result_label = tk.Label(root, text="")
result_label.pack()submit_button = tk.Button(root, text="提交", command=submit_tasks)
submit_button.pack()root.mainloop()
在这个GUI中,我们为每个任务创建一个复选框,让用户可以选择自己完成的任务。当用户点击"提交"按钮时,我们计算所选任务的得分总和,并将其添加到总得分中。然后,我们更新结果标签以显示今日得分和总得分。
为了可视化得分历史,我们可以使用matplotlib库。每次提交任务后,我们将当前日期和总得分添加到历史记录中,并绘制得分折线图:
import matplotlib.pyplot as plt
from datetime import datetimescores = []
dates = []def submit_tasks():selected_tasks = [var.get() for var in task_vars if var.get()]score = sum(tasks[task] for task in selected_tasks)total_score.set(total_score.get() + score)result_label.config(text=f"今日得分: {score}, 总得分: {total_score.get()}")scores.append(total_score.get())dates.append(datetime.now().strftime("%Y-%m-%d"))plt.figure(figsize=(8, 5))plt.plot(dates, scores, marker='o')plt.xlabel('日期')plt.ylabel('总得分')plt.title('得分历史')plt.tight_layout()plt.savefig('score_history.png')plt.close()
这段代码会在每次提交任务后更新得分历史图表,并将其保存为一个PNG文件。你可以在程序运行的目录下找到这个文件。