项目原因

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

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

展示效果如下:

输入 一段字符串,生成 复习 时间表。 用艾宾浩斯法
例如, "复习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. 通过 layout 探索 kratos 运行原理

    创建项目 首先需要安装好对应的依赖环境,以及工具: go 下载 protoc go install google.golang.org/protobuf/cmd/protoc-gen-go@lates ...

  2. 【SpringMVC】完全注解配置SpringMVC

    创建初始化类,代替web.xml 在Servlet3.0环境中,容器会在类路径中查找实现javax.servlet.ServletContainerInitializer接口的类,如果找到的话就用它来 ...

  3. C语言中动态内存分配的本质是什么?

    摘要:C语言中比较重要的就是指针,它可以用来链表操作,谈到链表,很多时候为此分配内存采用动态分配而不是静态分配. 本文分享自华为云社区<[云驻共创]C语言中动态内存分配的本质>,作者: G ...

  4. 2021 年 9 月 TIOBE 指数 C# 增长突破 1.2%

    TIOBE 编程社区指数是编程语言流行程度的指标.该指数每月更新一次.评级基于全球熟练工程师.课程和第三方供应商的数量.谷歌.必应.雅虎.维基百科.亚马逊.YouTube 和百度等流行搜索引擎用于计算 ...

  5. 快速模式第三包收尾之quick_inI2()

    快速模式第三包收尾之quick_inI2() 文章目录 快速模式第三包收尾之quick_inI2() 1. 序言 2. quick_inI2()处理流程图 3. 报文格式 4. quick_inI2( ...

  6. stream流思想应用

    1.计算集合中某字段数值和 subTotal = subTotal+ complainCountResult.stream().filter(childSource->childSource.g ...

  7. NIO.2中Path,Paths,Files类的使用

    Java NIO Java NIO概述 Java NIO(New IO(新io),Non-Blocking IO(非阻塞的io))是从Java 1.4版本开始引入的一套新的IO API,可以替代标准的 ...

  8. 谈谈raft fig8 —— 迷惑的提交条件和选举条件

    谈谈raft fig8 -- 迷惑的提交条件和选举条件 前言 这篇文章的思路其实在两个月前就已经成型了,但由于实习太累了,一直没来得及写出来.大概一个月前在群里和群友争论fig8的一些问题时,发现很多 ...

  9. 深入xLua实现原理之Lua如何调用C#

    xLua是腾讯的一个开源项目,为Unity. .Net. Mono等C#环境增加Lua脚本编程的能力.本文主要是探讨xLua下Lua调用C#的实现原理. Lua与C#数据通信机制 无论是Lua调用C# ...

  10. axios与vue-resource

    在Vue项目中前后端交互时,早期Vue使用Vue-resource实现异步请求.从Vue2.0之后就不再对vue-resource进行更新,Vue官方推荐使用axios. vue-resource V ...