python助手_python编写学习助手0

项目原因

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

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

展示效果如下:

输入 一段字符串,生成 复习 时间表。 用艾宾浩斯法

例如, "复习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:34notdone

试一试2020-09-16 11:04:34notdone

试一试2020-09-17 10:04:34notdone

试一试2020-09-20 10:04:34notdone

试一试2020-09-23 10:04:34notdone

试一试2020-10-16 10:04:34notdone

试一试2020-11-15 10:04:34notdone

试一试2020-12-15 10:04:34notdone

下一步开发计划是:

1.对列表按照时间排序

2.已完成的事件被转移到另一个文件中

3.时间到达后会弹出至屏幕,成为今天必须要做的todolist

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

python脚本传参

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

import sys

a = sys.argv[0]

b = sys.argv[1]

print(a)

print(b)

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

python输出标准时间

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类的静态方法

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值