一个简洁的背单词、背短语python程序——英文背记系统(自用)

自己在备考英语竞赛,但是网上单词软件现有的词库都没有包含,索性自己写一个小程序,以来自用。

没有花里胡哨的功能,但自用刷词也够用了。

实现功能

模拟练习模式、考试模式、查看词库模式(可直接修改词库)


模拟练习模式:

  1. 又细分为三种模式:正向答题(看英文写中文)、反向答题(看中文写英文),混合答题

  2. 进入模式后可选择题数量,回车开始答题

  3. 每完成一道题即可知道自己答对与否,以便反复进行记忆

  4. 关闭程序即可结束


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'

考试模式:

  1. 又细分为三种模式:正向答题(看英文写中文)、反向答题(看中文写英文),混合答题

  2. 进入模式后可选择题数量,回车开始答题

  3. 在完成考试前不会知道题目正确与否以及考试情况,充分还原现实中的考试

  4. 结束考试后,可以知道答题情况(正确率)以及错题回顾


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'   

查看词库模式:

  1. 直接打开“词库.xlsx"文

  2. 在此模式下,可直观地看这个词库里的内容进行背记。同时也可直接增删改查词库中的内容,保存后再次运行程序即可


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')

词库样例:

写在最后:

初学者的小作品而已,也没花太多时间,希望大家能多提一些建议,谢谢~

  • 15
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值