项目原因

为了解决学习知识后不及时复习而导致遗忘的问题,准备写一个桌面助手,采用艾宾浩斯记忆法,对每次学习的内容排布复习计划。

第一步是做出最简单的文本列表,里面是待办事项,每个复习待办事项都会有符合艾宾浩斯遗忘曲线的时间戳。

展示效果如下:

输入 一段字符串,生成 复习 时间表。 用艾宾浩斯法
例如, "复习kmp算法", 输入后,产生以下文字: 学习kmp算法 当前时间+ 30min 未完成
学习kmp算法 当前时间 + 1h 未完成
学习kmp算法 当前时间 + 1day 未完成
学习kmp算法 当前时间 + 4day
学习kmp算法 当前时间 + 7day
学习kmp算法 当前时间 + 30day
学习kmp算法 当前时间 + 60day
学习kmp算法 当前时间 + 90day
学习kmp算法 当前时间 + 180day

代码如下:

import os
import sys
import datetime class learningHelper():
file_name = str("todolist.txt")
standardtimeformat = r"%Y-%m-%d %H:%M:%S" @classmethod
def generateTodolist(cls, todostr):
resstr=''
resstr = resstr+'\n'+todostr+"\t\t"+(datetime.datetime.now()+datetime.timedelta(minutes=30)).strftime(learningHelper.standardtimeformat)+"\t\t"+"notdone"
resstr = resstr+'\n'+todostr+"\t\t"+(datetime.datetime.now()+datetime.timedelta(hours=1)).strftime(learningHelper.standardtimeformat)+"\t\t"+"notdone"
resstr = resstr+'\n'+todostr+"\t\t"+(datetime.datetime.now()+datetime.timedelta(days=1)).strftime(learningHelper.standardtimeformat)+"\t\t"+"notdone"
resstr = resstr+'\n'+todostr+"\t\t"+(datetime.datetime.now()+datetime.timedelta(days=4)).strftime(learningHelper.standardtimeformat)+"\t\t"+"notdone"
resstr = resstr+'\n'+todostr+"\t\t"+(datetime.datetime.now()+datetime.timedelta(days=7)).strftime(learningHelper.standardtimeformat)+"\t\t"+"notdone"
resstr = resstr+'\n'+todostr+"\t\t"+(datetime.datetime.now()+datetime.timedelta(days=30)).strftime(learningHelper.standardtimeformat)+"\t\t"+"notdone"
resstr = resstr+'\n'+todostr+"\t\t"+(datetime.datetime.now()+datetime.timedelta(days=60)).strftime(learningHelper.standardtimeformat)+"\t\t"+"notdone"
resstr = resstr+'\n'+todostr+"\t\t"+(datetime.datetime.now()+datetime.timedelta(days=90)).strftime(learningHelper.standardtimeformat)+"\t\t"+"notdone"
#resstr = resstr+'\n'+todostr+"\t\t"+(datetime.datetime.now()+datetime.timedelta(months=parameter)).strftime(learningHelper.standardtimeformat)+"\t\t"+"notdone"
#resstr = resstr+'\n'+todostr+"\t\t"+(datetime.datetime.now()+datetime.timedelta(years=parameter)).strftime(learningHelper.standardtimeformat)+"\t\t"+"notdone"
return resstr if __name__=="__main__":
todostr = sys.argv[1]
if(todostr == None):
#对列表进行排序
pass
with open(learningHelper.file_name,'a') as f:
f.write(learningHelper.generateTodolist(todostr))
f.close()

主要思路是:

python脚本输入一个事件, 脚本得到参数后生成带时间戳的列表。 这里用到了python的时间日期模块。其中日期的加减通过当前时间和 datetime.timedelta()方法的加减来完成。

一个输出的样例:


试一试 2020-09-16 10:34:34 notdone
试一试 2020-09-16 11:04:34 notdone
试一试 2020-09-17 10:04:34 notdone
试一试 2020-09-20 10:04:34 notdone
试一试 2020-09-23 10:04:34 notdone
试一试 2020-10-16 10:04:34 notdone
试一试 2020-11-15 10:04:34 notdone
试一试 2020-12-15 10:04:34 notdone

下一步开发计划是:

1.对列表按照时间排序
2.已完成的事件被转移到另一个文件中
3.时间到达后会弹出至屏幕,成为今天必须要做的todolist

从给自己有帮助的实用工具的开发是学习编程的良好开端。写许多小工具也会让自己具有成就感,同时也确实帮助到了自己。

python脚本传参

python脚本传入参数的办法 https://www.jb51.net/article/171619.html

首先是向py脚本如何传参数,传递参数最简单的方法就是sys.argv

import sys

a = sys.argv[0]
b = sys.argv[1] print(a)
print(b)

python脚本传递参数的方式还有哪些?

python输出标准时间

python日期的加减。

https://blog.csdn.net/lilongsy/article/details/80242427

import datetime # 日期模块
print(datetime.datetime.now()) # 当前时间
print (datetime.datetime.now()+datetime.timedelta(days=1)).strftime("%Y-%m-%d %H:%M:%S") #当前时间加1天且 格式化时间。
# 如果是小时就是hours,分钟就是minutes

python类的静态方法

https://www.cnblogs.com/nevermore29/p/10843981.html

在类中的方法上一行加修饰符 @classmethod, 且函数的第一个参数必须是cls

python编写学习助手0的更多相关文章

  1. [python xml 学习篇][0]

    tree = ET.parse("Result.xml")root = tree.getroot()print type(root)print root.tag # 得到root ...

  2. 通过编写串口助手工具学习MFC过程——(十)UpdateData()用法和编辑框的赋值、取值

    通过编写串口助手工具学习MFC过程 因为以前也做过几次MFC的编程,每次都是项目完成时,MFC基本操作清楚了,但是过好长时间不再接触MFC的项目,再次做MFC的项目时,又要从头开始熟悉.这次通过做一个 ...

  3. 通过编写串口助手工具学习MFC过程——(九)自动识别串口的方法

    通过编写串口助手工具学习MFC过程 因为以前也做过几次MFC的编程,每次都是项目完成时,MFC基本操作清楚了,但是过好长时间不再接触MFC的项目,再次做MFC的项目时,又要从头开始熟悉.这次通过做一个 ...

  4. 通过编写串口助手工具学习MFC过程——(八)遇到的一些问题

    通过编写串口助手工具学习MFC过程 因为以前也做过几次MFC的编程,每次都是项目完成时,MFC基本操作清楚了,但是过好长时间不再接触MFC的项目,再次做MFC的项目时,又要从头开始熟悉.这次通过做一个 ...

  5. 通过编写串口助手工具学习MFC过程——(六)添加Edit编辑框控件

    通过编写串口助手工具学习MFC过程 因为以前也做过几次MFC的编程,每次都是项目完成时,MFC基本操作清楚了,但是过好长时间不再接触MFC的项目,再次做MFC的项目时,又要从头开始熟悉.这次通过做一个 ...

  6. 通过编写串口助手工具学习MFC过程——(七)添加Tab Control控件

    通过编写串口助手工具学习MFC过程 因为以前也做过几次MFC的编程,每次都是项目完成时,MFC基本操作清楚了,但是过好长时间不再接触MFC的项目,再次做MFC的项目时,又要从头开始熟悉.这次通过做一个 ...

  7. 通过编写串口助手工具学习MFC过程——(五)添加CheckBox复选框

    通过编写串口助手工具学习MFC过程 因为以前也做过几次MFC的编程,每次都是项目完成时,MFC基本操作清楚了,但是过好长时间不再接触MFC的项目,再次做MFC的项目时,又要从头开始熟悉.这次通过做一个 ...

  8. 通过编写串口助手工具学习MFC过程——(四)添加ComboBox组合框

    通过编写串口助手工具学习MFC过程 因为以前也做过几次MFC的编程,每次都是项目完成时,MFC基本操作清楚了,但是过好长时间不再接触MFC的项目,再次做MFC的项目时,又要从头开始熟悉.这次通过做一个 ...

  9. 通过编写串口助手工具学习MFC过程——(三)Unicode字符集的宽字符和多字节字符转换

    通过编写串口助手工具学习MFC过程 因为以前也做过几次MFC的编程,每次都是项目完成时,MFC基本操作清楚了,但是过好长时间不再接触MFC的项目,再次做MFC的项目时,又要从头开始熟悉.这次通过做一个 ...

随机推荐

  1. Servlet学习笔记(四)之请求转发与重定向(RequestDispatcher与sendRedirect)

    ServletContext可以实现请求转发(ServletContext请求转发相关内容见之前博客:http://blog.csdn.net/megustas_jjc/article/details ...

  2. 剑指 Offer 32 - I. 从上到下打印二叉树

    剑指 Offer 32 - I. 从上到下打印二叉树 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印. 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 ...

  3. ubantu虚拟机搭建xl2tp服务

    在编译成功源码,安装完毕xl2tpd后,便可以配置xl2tpd服务.基本配置过程主要涉及两个配置文件:一个用来配置xl2tpd, 一个用来配置ppp协议.下面分别对这两个文件进行说明,最后添加xl2t ...

  4. Abp Vnext3 vue-admin-template(二用户退出)

    先修改用户退出,中午有点困先改简单的 退出代码在src\layout\components\Navbar.vue代码如下,讲流程这里不需要修改 methods: { toggleSideBar() { ...

  5. TCP协议和套接字

    一.TCP通信概述,逻辑连接就是三次握手 二.客户端和服务端实现TCP协议通信基本步骤 1.客户端套接字对象 Socket 2.服务端套接字ServerSocket 客户端补充完整代码:除了创建各自的 ...

  6. DLL延时加载技术与资源释放

    DLL延时加载技术与资源释放 0x00 前言 诸如调用非Windows的第三方库,我们或许会使用到dll文件,而这个时候原本程序运行需要相应的dll文件才能加载启动.通过DLL延时加载技术,使用延时加 ...

  7. Linux详细安装流程(直接看图)

    准备工作:一台电脑.sentOS镜像文件. 一.首先打开虚拟机,点击文件--新建虚拟机 二.选择自定义,然后点击下一步  

  8. 【第二篇】- Git 安装配置之Spring Cloud直播商城 b2b2c电子商务技术总结

    Git 安装配置 在使用Git前我们需要先安装 Git.Git 目前支持 Linux/Unix.Solaris.Mac和 Windows 平台上运行. Git 各平台安装包下载地址为:http://g ...

  9. Nginx系列(4)- Nginx安装 | Windows

    下载 访问官网,选择稳定版对应的Windows系列 安装解压即可 启动nginx 有很多种方法启动nginx 直接双击nginx.exe,双击后一个黑色的弹窗一闪而过 打开cmd命令窗口,切换到ngi ...

  10. Jmeter系列(22)- 常用逻辑控制器(1) | 随机控制器Random Controller

    随机控制器(Random Controller) 该控制器下的请求,请求顺序随机,适用场景一般为顺序性依赖不强的请求,比如:下载文件:浏览商品:访问查询接口 随机控制器下的请求随机,如果勾选了[忽略控 ...