python——利用记忆曲线制作单词计划表

做什么

背单词是一件令人头痛的事情,使用记忆曲线记忆可以帮助人们更好的记忆
本文主要根据你的输入生成一个单词复习计划表,并且可以辅助你进行适合你的背单词规划

记忆曲线

记忆曲线的周期为:
12 小时后为一个周期
1天后为一个周期
2天后为一个周期
4天后为一个周期
7天后为一个周期
15天后为一个周期
30天后为一个周期

规划

在这里插入图片描述
背诵日期格式说明:
空格表示不背
字母表示对应单元,1 A表示第一天背了A单元
格式固定为 数字+空格+字母

1 A
2 B
3 C
4 E
5 
6 F
7 G
8 
9 H
10 
11 I
12 J

生成效果
在这里插入图片描述
根据生成的效果复习,或者调整参数生成合适的复习表
格式说明:
A1 表示A单元复习第一遍 #A 表示背诵新单元A

程序

说明:
按1根据txt生成复习表
按2调整参数,估算背诵单词频率是否合适

import os
cycle=[1,1,2,4,7,15,30]
list_code=['' for _ in range(150)]//按照习惯,有时候单个独立下划线是用作一个名字,来表示某个变量是临时的或无关紧要的。
for i in range(0,150):
    list_code[i]=str(i+1)+" "//str() 函数将对象转化为适于人阅读的形式。它将参数转换成字符串类型

#分离出每行的数字和单词
def code_split(f):
    for line in f.readlines():
        line=line.strip('\n')
        print(line)
        digit=""
        english=""
        for char in line:#先提取数字和字母的信息
            if char!=' ':
                digit+=char
            elif char==' ':   
                english=line.strip(digit)
                english=english.strip(' ')
                if english!='':
                    calcuate(digit,english,list_code)
                break


#对每行进行日期叠加
def calcuate(digit,english,list_code):
    list_code[int(digit)-1]+=' #'+english 
    for i in range(len(cycle)):
        locate=int(digit)+cycle[i]-1
        list_code[locate]+=' '+english+str(i+1)+' '


if __name__ == '__main__':
    path=os.path.abspath('.') #获取当前路径
    address = path+os.sep+"背诵日期.txt"#文本存放路径
    statue=input('根据背诵时间 生成复习表,请按1:\n修改参数,预览复习计划 请按2:')
    if statue=='1':
        with open(address, 'r') as f:
            code_split(f) 
    elif statue=='2':
        workday=int(input('请输入连续背的天数:'))
        holiday=int(input('请输入休息天数:'))
        stop=int(input('请输入背诵新单词总天数: '))

        for i in range(stop):
            digit2=i+1
            if i%(workday+holiday)<workday:
                english2=chr(ord('A')+i-holiday*int(i/(workday+holiday)))
                calcuate(digit2,english2,list_code)
            
    for i in range(0,150):
        print(list_code[i])
    os.system("pause")

待实现

自动调参计算得分
计算分布得分
日均单词得分
对复习频率进行权重分配

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王蒟蒻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值