自己在备考英语竞赛,但是网上单词软件现有的词库都没有包含,索性自己写一个小程序,以来自用。
没有花里胡哨的功能,但自用刷词也够用了。
模拟练习模式、考试模式、查看词库模式(可直接修改词库)
又细分为三种模式:正向答题(看英文写中文)、反向答题(看中文写英文),混合答题
进入模式后可选择题数量,回车开始答题
每完成一道题即可知道自己答对与否,以便反复进行记忆
关闭程序即可结束
import random
def setting_a():#进行开始练习之前的一些设定
print("请设置本次练习模式\n1.看英文写中文\t2.看中文写英文")
P=input("")
print("请设置本次练习题量:")
O=input("")
return P,int(O)
def see_english_a(O):#看英文答中文模式
n=input("准备好了按回车开始开始吧")
while n=='':
wrong=list()#创建一个装错题的列表
for i in range(0,O):
L=list(WORDS.items())
x=random.randint(0,len(L)-1)
key=(L[x][0]) #选中题目
right_key=L[x][1] #设定答案
print("\n"+key) #apple
user_key=input("") #苹果
if user_key == right_key:
print("回答正确")
else:
wrong.append((L[x]))
print("回答错误,正确答案是:{}".format(right_key))
i+=1
n='1'
def see_chinese_a(O):
n=input("准备好了按回车开始开始吧")
while n=='':
wrong=list()
for i in range(0,O):
L=list(WORDS.items())
x=random.randint(0,len(L)-1)
value=(L[x][1]) #从库列表中取一个数
right_value=L[x][0]
print("\n"+value) #苹果
user_value=input("") #apple
if user_value == right_value:
print("回答正确")
else:
wrong.append((L[x]))
print("回答错误,正确答案是:{}".format(right_value))
i+=1
n='1'
又细分为三种模式:正向答题(看英文写中文)、反向答题(看中文写英文),混合答题
进入模式后可选择题数量,回车开始答题
在完成考试前不会知道题目正确与否以及考试情况,充分还原现实中的考试
结束考试后,可以知道答题情况(正确率)以及错题回顾
import random
def setting_s():
print("请设置本次练习模式\n1.看英文写中文\t2.看中文写英文\t3.混合模式")
P=input("")
print("请设置本次练习题量:")
O=input("")
return P,int(O)
def see_english_s(O):
n=input("准备好了按回车开始吧")
while n=='':
z=0 #记录正确题数
wrong=list()
for i in range(0,O):
L=list(WORDS.items())
x=random.randint(0,len(L)-1)
key=(L[x][0]) #选中题目
right_key=L[x][1] #设定答案
print("\n"+key) #apple
user_key=input("") #苹果
if user_key == right_key:
z=z+1
else:
wrong.append((L[x]))
i+=1
if O-z==0:
print("本次考试结束,一共完成{}题。\n正确率100%".format(O))
else:
print('本次考试结束,一共完成{}题。\n其中正确{}题,错误{}题\n本次您的正确率为:{:.2%}'.format(O,z,O-z,z/O))
print("错误单词如下{}".format(wrong))
n='1'
def see_chinese_s(O):
n=input("准备好了按回车开始吧")
while n=='':
wrong=list()
z=0 #记录正确题数
for i in range(0,O):
L=list(WORDS.items())
x=random.randint(0,len(L)-1)
value=(L[x][1]) #从库列表中取一个数
right_value=L[x][0]
print("\n"+value) #苹果
user_value=input("") #apple
if user_value == right_value:
z=z+1
else:
wrong.append((L[x]))
i+=1
if O-z==0:
print("本次考试结束,一共完成{}题。\n正确率100%".format(O))
else:
print('本次考试结束,一共完成{}题。\n其中正确{}题,错误{}题\n本次您的正确率为:{:.2%}'.format(O,z,O-z,z/O))
print("错误单词如下{}".format(wrong))
n='1'
def mixed_s(O):
n=input("准备好了按回车开始吧")
while n=='':
wrong=list()
z=0 #记录正确题数
for i in range(0,O):
L=list(WORDS.items())
x=random.randint(0,len(L)-1)
y = random.randint(0,1)
if y ==1: #see_chinese
value=(L[x][1]) #从库列表中取一个数
right_value=L[x][0]
print("\n"+value) #苹果
user_value=input("") #apple
if user_value == right_value:
z=z+1
else:
wrong.append((L[x]))
i+=1
elif y==0: #see_english
value=(L[x][0]) #从库列表中取一个数
right_value=L[x][1]
print("\n"+value) #apple
user_value=input("") #苹果
if user_value == right_value:
z=z+1
else:
wrong.append((L[0]))
i+=1
if O-z==0:
print("本次考试结束,一共完成{}题。\n正确率100%".format(O))
else:
print('本次考试结束,一共完成{}题。\n其中正确{}题,错误{}题\n本次您的正确率为:{:.2%}'.format(O,z,O-z,z/O))
print("错误单词如下{}".format(wrong))
n='1'
直接打开“词库.xlsx"文
在此模式下,可直观地看这个词库里的内容进行背记。同时也可直接增删改查词库中的内容,保存后再次运行程序即可
import os
os.system('Python\背单词\词库.xlsx')
除了上面的小模块的实现,还有一些包括导入“词库.xlsx”的代码,主要是用的openpyxl来实现
请看完整程序,可直接把路径改成本地路径进行学习。
import random
from openpyxl import *
import os
#从词库获取列表
te1 = load_workbook(u"Python\背单词\背单词程序\词库.xlsx")
sheetnames1 = te1.sheetnames
t1 = te1[sheetnames1[0]]
WORDS={}
for i in range(1,t1.max_row+1):
english = t1[f'A{i}'].value #英文
chinese = t1[f'B{i}'].value #中文
WORDS[english]=chinese
#练习
def setting_a():
print("请设置本次练习模式\n1.看英文写中文\t2.看中文写英文")
P=input("")
print("请设置本次练习题量:")
O=input("")
return P,int(O)
def see_english_a(O):
n=input("准备好了按回车开始开始吧")
while n=='':
wrong=list()
for i in range(0,O):
L=list(WORDS.items())
x=random.randint(0,len(L)-1)
key=(L[x][0]) #选中题目
right_key=L[x][1] #设定答案
print("\n"+key) #apple
user_key=input("") #苹果
if user_key == right_key:
print("回答正确")
else:
wrong.append((L[x]))
print("回答错误,正确答案是:{}".format(right_key))
i+=1
n='1'
def see_chinese_a(O):
n=input("准备好了按回车开始开始吧")
while n=='':
wrong=list()
for i in range(0,O):
L=list(WORDS.items())
x=random.randint(0,len(L)-1)
value=(L[x][1]) #从库列表中取一个数
right_value=L[x][0]
print("\n"+value) #苹果
user_value=input("") #apple
if user_value == right_value:
print("回答正确")
else:
wrong.append((L[x]))
print("回答错误,正确答案是:{}".format(right_value))
i+=1
n='1'
#考试
def setting_s():
print("请设置本次练习模式\n1.看英文写中文\t2.看中文写英文\t3.混合模式")
P=input("")
print("请设置本次练习题量:")
O=input("")
return P,int(O)
def see_english_s(O):
n=input("准备好了按回车开始吧")
while n=='':
z=0 #记录正确题数
wrong=list()
for i in range(0,O):
L=list(WORDS.items())
x=random.randint(0,len(L)-1)
key=(L[x][0]) #选中题目
right_key=L[x][1] #设定答案
print("\n"+key) #apple
user_key=input("") #苹果
if user_key == right_key:
z=z+1
else:
wrong.append((L[x]))
i+=1
if O-z==0:
print("本次考试结束,一共完成{}题。\n正确率100%".format(O))
else:
print('本次考试结束,一共完成{}题。\n其中正确{}题,错误{}题\n本次您的正确率为:{:.2%}'.format(O,z,O-z,z/O))
print("错误单词如下{}".format(wrong))
n='1'
def see_chinese_s(O):
n=input("准备好了按回车开始吧")
while n=='':
wrong=list()
z=0 #记录正确题数
for i in range(0,O):
L=list(WORDS.items())
x=random.randint(0,len(L)-1)
value=(L[x][1]) #从库列表中取一个数
right_value=L[x][0]
print("\n"+value) #苹果
user_value=input("") #apple
if user_value == right_value:
z=z+1
else:
wrong.append((L[x]))
i+=1
if O-z==0:
print("本次考试结束,一共完成{}题。\n正确率100%".format(O))
else:
print('本次考试结束,一共完成{}题。\n其中正确{}题,错误{}题\n本次您的正确率为:{:.2%}'.format(O,z,O-z,z/O))
print("错误单词如下{}".format(wrong))
n='1'
def mixed_s(O):
n=input("准备好了按回车开始吧")
while n=='':
wrong=list()
z=0 #记录正确题数
for i in range(0,O):
L=list(WORDS.items())
x=random.randint(0,len(L)-1)
y = random.randint(0,1)
if y ==1: #see_chinese
value=(L[x][1]) #从库列表中取一个数
right_value=L[x][0]
print("\n"+value) #苹果
user_value=input("") #apple
if user_value == right_value:
z=z+1
else:
wrong.append((L[x]))
i+=1
elif y==0: #see_english
value=(L[x][0]) #从库列表中取一个数
right_value=L[x][1]
print("\n"+value) #apple
user_value=input("") #苹果
if user_value == right_value:
z=z+1
else:
wrong.append((L[0]))
i+=1
if O-z==0:
print("本次考试结束,一共完成{}题。\n正确率100%".format(O))
else:
print('本次考试结束,一共完成{}题。\n其中正确{}题,错误{}题\n本次您的正确率为:{:.2%}'.format(O,z,O-z,z/O))
print("错误单词如下{}".format(wrong))
n='1'
#主程序
print(
"""
欢迎使用短语背记系统
模拟练习请按A 进入考试请按S 查看题库请按D
"""
)
M=input()
if M=='A'or M=='a':
P,O=setting_a()
if P=="1":
see_english_a(O)
if P=="2":
see_chinese_a(O)
elif M=='s'or M=='S':
P,O=setting_s()
if P=="1":
see_english_s(O)
if P=="2":
see_chinese_s(O)
if P=="3":
mixed_s(O)
else:
os.system('Python\背单词\背单词程序\词库.xlsx')
写在最后:
初学者的小作品而已,也没花太多时间,希望大家能多提一些建议,谢谢~