当前位置: 首页 > news >正文

Python 设计一个监督自己的软件1

基本要求:每做一件事,软件就会按照事情权重加相应的分数,总分数也会增加,要可视化页面

使用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文件。你可以在程序运行的目录下找到这个文件。

http://www.lryc.cn/news/335704.html

相关文章:

  • 商家转账到零钱权限开通操作攻略
  • 【DAC‘ 2022】Kite: A Family of Heterogeneous Interposer Topologies
  • 数据结构—堆
  • Kubernetes学习笔记8
  • [渗透利器]在线渗透测试工具箱?测评
  • rocketmq和rabbitmq总是分不清?
  • 利用Python ARM网关仓储物流AGV小车控制器
  • Transformer详解和知识点总结
  • 【Ubuntu】update-alternatives 命令详解
  • 数据结构之堆练习题及PriorityQueue深入讲解!
  • MySQL——Linux安装包
  • MySQL学习笔记(数据类型, DDL, DML, DQL, DCL)
  • Asible管理变量与事实——管理变量(1)
  • 【微服务】------微服务架构技术栈
  • 【SCI绘图】【小提琴系列1 python】绘制按分类变量分组的垂直小提琴图
  • docker------docker入门
  • 终极数据传输隐秘通道
  • Qt中的事件与事件处理
  • 中间件漏洞攻防学习总结
  • HarmonyOS开发实例:【分布式数据管理】
  • 蓝桥杯——运动会
  • 如何搭建APP分发平台分发平台搭建教程
  • 【计算机专业必看】详细说明文件打开模式r,w,a,r+,w+,a+的区别和联系
  • Db2数据库稳定性解决方案
  • 如何用Python编写简单的网络爬虫(页面代码简单分析过程)
  • 【随笔】Git 高级篇 -- 最近标签距离查询 git describe(二十一)
  • 【leetcode面试经典150题】7.买卖股票的最佳时机(C++)
  • 个人求职简历(精选8篇)
  • Ubuntu22.04安装Anaconda
  • 后端nginx使用set_real_ip_from获取用户真实IP