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("复习愉快!!!")
运行结果:
第一单元复习两次后,每一次的正确率
统计所有复习次数中错误最多的单词,从大到小排序: