zoukankan      html  css  js  c++  java
  • 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+'
    '+todostr+"		"+(datetime.datetime.now()+datetime.timedelta(minutes=30)).strftime(learningHelper.standardtimeformat)+"		"+"notdone"
            resstr = resstr+'
    '+todostr+"		"+(datetime.datetime.now()+datetime.timedelta(hours=1)).strftime(learningHelper.standardtimeformat)+"		"+"notdone"
            resstr = resstr+'
    '+todostr+"		"+(datetime.datetime.now()+datetime.timedelta(days=1)).strftime(learningHelper.standardtimeformat)+"		"+"notdone"
            resstr = resstr+'
    '+todostr+"		"+(datetime.datetime.now()+datetime.timedelta(days=4)).strftime(learningHelper.standardtimeformat)+"		"+"notdone"
            resstr = resstr+'
    '+todostr+"		"+(datetime.datetime.now()+datetime.timedelta(days=7)).strftime(learningHelper.standardtimeformat)+"		"+"notdone"
            resstr = resstr+'
    '+todostr+"		"+(datetime.datetime.now()+datetime.timedelta(days=30)).strftime(learningHelper.standardtimeformat)+"		"+"notdone"
            resstr = resstr+'
    '+todostr+"		"+(datetime.datetime.now()+datetime.timedelta(days=60)).strftime(learningHelper.standardtimeformat)+"		"+"notdone"
            resstr = resstr+'
    '+todostr+"		"+(datetime.datetime.now()+datetime.timedelta(days=90)).strftime(learningHelper.standardtimeformat)+"		"+"notdone"      
            #resstr = resstr+'
    '+todostr+"		"+(datetime.datetime.now()+datetime.timedelta(months=parameter)).strftime(learningHelper.standardtimeformat)+"		"+"notdone"
            #resstr = resstr+'
    '+todostr+"		"+(datetime.datetime.now()+datetime.timedelta(years=parameter)).strftime(learningHelper.standardtimeformat)+"		"+"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

  • 相关阅读:
    POJ 2456 Aggressive cows (二分)
    ACM北大暑期课培训第二天
    ACM北大暑期课培训第一天
    Rust Lang Book Ch.14 Crates.io
    Rust Lang Book Ch.13 Iterators, Closures
    Rust Lang Book Ch.12 An I/O Project: Building a Command Line Program
    Rust Lang Book Ch.11 Automated Tests
    Rust Lang Book Ch.10 Generic Types, Traits. and Lifetimes
    Rust Lang Book Ch.9 Error Handling
    HDU-2087-KMP-水题
  • 原文地址:https://www.cnblogs.com/goto2091/p/13677803.html
Copyright © 2011-2022 走看看