python背单词+数据统计可视化

import random
import matplotlib.pyplot as pl
def remember(answer,result,aquestion,aw,wrong_answer,number,rol):
    while answer!='-1':
        x=random.randint(0,len(result)-1)
        if x not in aquestion:
            aquestion.append(x)
            print('中文:'+result[x][1])
            answer=input('英文(输入‘-1’结束,‘0’查看答案):')
            while aw==0 and answer!='-1':
                if answer==result[x][0]:
                    print('-----------------正确-----------------')
                    print('\n')
                    aw=1
                if answer!=result[x][0] and answer!='0':
                    print('-----------------错误-----------------')
                    if [result[x][0],result[x][1]] not in wrong_answer:
                        wrong_answer.append([result[x][0],result[x][1]])
                    answer=input('重新输入(‘0’查看答案):')
                    if answer=='0':
                        print('-----------------答案-----------------')
                        print(result[x][0])
                        print('\n')
                        aw=1
                if aw!=1 and answer=='0':
                    if [result[x][0],result[x][1]] not in wrong_answer:
                        wrong_answer.append([result[x][0],result[x][1]])
                    print('-----------------答案-----------------')
                    print(result[x][0])
                    print('\n')
                    aw=1
            aw=0
        if len(aquestion)==len(result) and answer!='-1':
            if len(wrong_answer)!=0:
                result=wrong_answer
                wrong_answer=[]
                aquestion=[]
                print('错误单词如下:')
                print(result)
                if rol==1:
                    with open("以往数据/"+number+".txt",'a')as f:
                        for i in result:
                            f.write(str(i)+';')
                        f.write('\n')
                    rol+=1 
                print('开始复习错误单词!!!')
                print('\n')
                remember(answer,result,aquestion,aw,wrong_answer,number,rol)
            if len(wrong_answer)==0:
                if rol==1:
                    with open("以往数据/"+number+".txt",'a')as f:
                        f.write('')
                        f.write('\n')
            answer='-1'
number=input("请输入复习单元('-1'进入生成图):")
print('\n')
while number!='-1':
    rol=1
    file='第'+str(number)+'单元.txt'
    try:
        with open(file) as f:
            result=[]
            aquestion=[]
            f=f.read()
            a=f.split('\n')
            answer='0'
            aw=0
            wrong_answer=[]
            for i in a:
                b=str(i).split(',')
                for j in b:
                    c=str(j).split('/')
                    result.append(c)
            remember(answer,result,aquestion,aw,wrong_answer,number,rol)
            print('\n')
            if len(aquestion)!=len(result):
                number=input("第"+str(number)+"单元终止复习,输入下一复习单元('-1'结束):")
                print('\n')
            else:
                number=input("第"+str(number)+"单元复习完毕,输入下一复习单元('-1'结束):")
                print('\n')     
    except:
        number=input("无此单元请重新输入('-1'结束):")
        print('\n')
print("学习结束!!!!!!!!!!!!")
print("\n")
order=input("是否需要生成单词背诵情况图??(y/n)")
while order=='y':
    order=input("生成第几单元的呢?")
    result=[]
    try:
        with open('第'+order+'单元.txt') as file:
            file=file.read()
            file_s=file.split('\n')
            for i in file_s:
                file_sb=str(i).split(',')
                for j in file_sb:
                    file_sbc=str(j).split('/')
                    result.append(file_sbc)
        with open("以往数据/"+order+".txt")as f:
            tu_y=[]
            tu_x=[]
            time_f=[]
            fi=f.read()
            fil=fi.split('\n')
            for i in fil[:-1]:
                time_f.append(i.split(';')[:-1])
            for i in time_f:
                tu_y.append(round(((len(result)-len(i))/len(result)),2))
            for j in range(len(tu_y)):
                tu_x.append(int(j)+1)
            pl.title('unit '+order)
            pl.xlabel("time")
            pl.ylabel("accuracy")
            pl.plot(tu_x,tu_y)
            for i,j in zip(tu_x,tu_y):
                pl.text(i,j,j,ha='center',va='bottom',fontsize=11)
            pl.show()
            all_f=[]
            all_onen=[]
            for i in time_f:
                if i!=[]:
                    for j in i:
                        all_f.append(j)
            all_one=set(all_f)
            for i in range(len(all_one)):
                all_onen.append(0)
            dic=dict(zip(all_one,all_onen))
            for i in all_f:
                dic[i]+=1
            print('\n')
            print("错误词汇排序如下:\n")
            e=sorted(dic.items(),key=lambda x:x[1],reverse=True)
            for i in e:
                print('错误词汇:'+i[0]+' 错误次数: '+str(i[1]))
            print('\n')
            order=input("是否需要生成其他的单词背诵情况图??(y/n)")
    except:
        order=input("没有这个单元啊!!是不是要生成啊!(y/n)")
        
else:
    print("复习愉快!!!")




运行结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
第一单元复习两次后,每一次的正确率
在这里插入图片描述
统计所有复习次数中错误最多的单词,从大到小排序:
在这里插入图片描述

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值