用python实现单词本功能

因为笔者最近在准备TOEFL,所以背了好多单词,但是我又觉得百词斩有些低幼了,所以打算自己写一个。

希望实现的功能:
  1. 随机弹出单词的英文。(暂未实现)
  2. 随机弹出单词的中文,要求输入英文并判断是否正确。(已实现)
  3. 输入1弹出下一个单词(中文或英文),输入2弹出对应翻译,输入3结束本次学习,并输出记录
  4. 写入Excel该单词的熟悉度,并根据熟悉度反复检测。
  5. 每天学习的单词不重复(与日期相关)(已实现)。
  6. 图形界面。
Step0:所需工具:
  1. python&python第三方库:time,random,xlrd(安装方法略)
  2. 记录单词的Excel表格
Step1:代码部分(最新版本)
"""
A Harry Chen Code
使用说明:输入1是下一个,2是显示翻译或答案,3是结束学习,4是切换模式。
Setup:将对应的改名字,我的默认是
0:单词  1:分类  2:目录(单词书上的位置)     3:翻译
"""import xlrd
import time
day = time.strftime("%d")
data = xlrd.open_workbook(r'C:\Users\...\vocabulary.xlsx')
table = data.sheet_by_name('TOTAL')
my_nrows = table.nrows
counts = 0
mode = 1
scope = int(my_nrows / 30)
today = int(day) * scope
the_chosen_word = today             # this is for efficient modedef show_en(word_num):print("\t\t", table.cell_value(word_num, 0), '   ',table.cell_value(word_num, 1), '   ',table.cell_value(word_num, 2))  # 0:单词  1:分类  2:目录def show_cn(word_num):print("\t\t Translation", table.cell_value(word_num, 3))def control1(str_a, word_num):global countsif str_a == str(1):show_en(word_num)counts += 1return 1elif str_a == str(2):show_cn(word_num - 1)return 1elif str_a == str(3):       # breakreturn 3elif str_a == str(4):print("已切换模式")return 2  # means switch modeelse:print("1:下一个    2:显示答案      3:结束学习       4:切换模式")return 1def control2(str_a, word_num):global countsif str_a == str(1):print('\t\t请翻译:' + table.cell_value(word_num, 3))type_in = input()if type_in == table.cell_value(word_num, 0):print("\t\tCorrect!")else:show_en(word_num)counts += 1return 2elif str_a == str(3):return 3elif str_a == str(4):print("已切换模式")return 1  # means switch modeelse:print("1:下一个      3:结束学习       4:切换模式")return 2while mode != 3:a = input("输入指令:")if mode == 1:mode = control1(a, the_chosen_word)if a == str(1):the_chosen_word += 1if mode == 2:mode = control2(a, the_chosen_word)if a == str(1):the_chosen_word += 1if the_chosen_word == today + 30:  # this is for efficient modethe_chosen_word = todayprint("Done a roll!")print("本次复习单词{}个".format(counts))
不足之处:

因为每次都需要重新获取翻译,所以放慢了速度,下次可以加入xlwt库在单词旁边写入翻译,而且translator其实并不是很可靠,还需要连上网才可以。(已解决)
很遗憾的删除了随机功能~,等我暑假的时候在完善吧。

笔记:
  • 在最近的一次更新中,我再也忍不了translator这个垃圾第三方库了,所以我找到了替代品,在Excel里用一个函数(有道的接口)
=FILTERXML(WEBSERVICE("https://fanyi.youdao.com/translate?&i="&A1&"&doctype=xml"),"//translation")
  • 当Excel打开的时候,程序运行会报错(也许是因为我把表格文件放在OneDrive上)
更新记录
  • V1.01: 完成基本要求(功能3&5)。
  • V1.1: 改进翻译功能,完成功能2。
  • V2.0: 重写了结构,暂时删除了随机功能,添加了效率功能。

用python实现单词本功能相关推荐

  1. python实现单词本功能

    #实现简单的单词本:# 可以添加单词和词义,当所添加的单词已经存在 让用户知道:# 查找单词,单词不存在时,让用户知道# 删除单词,当删除的单词不存在时,让用户知道# 以上功能无限制操作,直到用户输入 ...

  2. python单词意思-python实现单词本功能

    def add_words(): word=input("请输入你要添加的单词:") if word in word_dic.keys(): print("你添加的单词已 ...

  3. python单词的含义-python实现单词本功能

    def add_words(): word=input("请输入你要添加的单词:") if word in word_dic.keys(): print("你添加的单词已 ...

  4. 用PyThon实现单词本的6个功能

    用PyThon实现单词本的6个功能 单词本的功能包括: 1.添加新单词:可以添加单词和单词的中文解释,当所添加的单词已经存在时,需要提醒用户: 2.查看单词本:查看目前单词本中所有单词及其中文解释,若 ...

  5. python解释器的功能_python的解释器是什么?

    python解释器是解释python脚本执行的程序.编写python代码保存后,我们会得到一个以.py为扩展名的文本文件.要运行此文件,就需要python解释器去执行.py文件. python解释器种 ...

  6. python网络爬虫的基本步骤-详解Python网络爬虫功能的基本写法

    网络爬虫,即Web Spider,是一个很形象的名字.把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛. 1. 网络爬虫的定义 网络蜘蛛是通过网页的链接地址来寻找网页的.从网站某一个 ...

  7. pycharm支持python3.8_PyCharm 2019.2 发布,Python 3.8功能的支持

    PyCharm 2019.2已经发布了,令人兴奋的新功能,开始支持Python 3.8,改进的Jupyter Notebook体验以及更多其他更改. PyCharm 2019.2发布亮点: 改进了Ju ...

  8. python开发环境功能介绍_第一模块 第3章 Python介绍与环境配置

    python入门(全为重点) 1. 编程语言介绍 编程语言分类.总结 2. python介绍 3. 解释器多版本共存 4. 运行python程序的两种方式 5. 一个python程序运行的三个步骤(* ...

  9. python实现登录功能_python实现用户登录功能模块

    python实现登录功能模块#!/usr/bin/env python while True: user = raw_input('Please input username:') if user = ...

  10. [转载] python字典查询功能_Python中的字典功能

    参考链接: Python中的字典dictionary方法 (cmp(), len(), items()-) python字典查询功能 Let's check out some important fu ...

最新文章

  1. 秒懂 CountDownLatch 与 CyclicBarrier 使用场景
  2. 没事试试50mm1.4
  3. 大数据WEB阶段总结
  4. 把经典的ABAP webdynpro应用配置到SAP Fiori Launchpad里
  5. [TJOI2013]拯救小矮人(反悔贪心证明),「ICPC World Finals 2019」Hobson 的火车(基环树,差分)
  6. Java的jvm原理和常识
  7. windows 打开exe传参_“以管理员身份运行”,这个打开软件时经常遇到的问题,有何含义...
  8. 模拟登陆教务处获取成绩
  9. assert函数_类成员函数指针在成员函数内部的调用
  10. 我的世界服务器怎么修改标语,怎么用资源包修改我的世界闪烁标语
  11. vue 图片拖拉转放大缩小组件
  12. 把一个base64编码的图片绘制到canvas (canvas的图片在转成dataurl)
  13. android设备如何挂载sdcard(有些设备是自动挂载的)
  14. matlab 保存图片大小尺寸_改变figure大小存储图片(matlab)
  15. java实现二十四节气计算
  16. Ubuntu Desktop LTS - 安装 64 位谷歌 Chrome 浏览器
  17. 表值函数和标量值函数
  18. 联通预存话费送iphone
  19. 计算机技术在中医药中的应用,计算机药物虚拟筛选技术在中医药领域中的应用前景...
  20. Facebook/atc环境搭建总结

热门文章

  1. ubuntu16.04 安装jre
  2. Arduino库文件LiquidCrystal的实用方法
  3. 天煌计算机组成原理控制软件,天煌THTJZ-2型计算机组成原理课程设计.doc
  4. strcmp函数用法
  5. java的日期格式化
  6. JEB动态调试debug模式
  7. 2022爱分析·国央企数字化实践报告
  8. TCP和UDP的区别(简单明了)
  9. java虚拟机带键盘安卓版下载。_jvm1.5官方下载
  10. 红茶三杯的博客-一个IE的博客