用python实现单词本功能
用python实现单词本功能
因为笔者最近在准备TOEFL,所以背了好多单词,但是我又觉得百词斩有些低幼了,所以打算自己写一个。
希望实现的功能:
- 随机弹出单词的英文。(暂未实现)
- 随机弹出单词的中文,要求输入英文并判断是否正确。(已实现)
- 输入1弹出下一个单词(中文或英文),输入2弹出对应翻译,输入3结束本次学习,并输出记录
- 写入Excel该单词的熟悉度,并根据熟悉度反复检测。
- 每天学习的单词不重复(与日期相关)(已实现)。
- 图形界面。
Step0:所需工具:
- python&python第三方库:time,random,xlrd(安装方法略)
- 记录单词的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实现单词本功能相关推荐
- python实现单词本功能
#实现简单的单词本:# 可以添加单词和词义,当所添加的单词已经存在 让用户知道:# 查找单词,单词不存在时,让用户知道# 删除单词,当删除的单词不存在时,让用户知道# 以上功能无限制操作,直到用户输入 ...
- python单词意思-python实现单词本功能
def add_words(): word=input("请输入你要添加的单词:") if word in word_dic.keys(): print("你添加的单词已 ...
- python单词的含义-python实现单词本功能
def add_words(): word=input("请输入你要添加的单词:") if word in word_dic.keys(): print("你添加的单词已 ...
- 用PyThon实现单词本的6个功能
用PyThon实现单词本的6个功能 单词本的功能包括: 1.添加新单词:可以添加单词和单词的中文解释,当所添加的单词已经存在时,需要提醒用户: 2.查看单词本:查看目前单词本中所有单词及其中文解释,若 ...
- python解释器的功能_python的解释器是什么?
python解释器是解释python脚本执行的程序.编写python代码保存后,我们会得到一个以.py为扩展名的文本文件.要运行此文件,就需要python解释器去执行.py文件. python解释器种 ...
- python网络爬虫的基本步骤-详解Python网络爬虫功能的基本写法
网络爬虫,即Web Spider,是一个很形象的名字.把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛. 1. 网络爬虫的定义 网络蜘蛛是通过网页的链接地址来寻找网页的.从网站某一个 ...
- pycharm支持python3.8_PyCharm 2019.2 发布,Python 3.8功能的支持
PyCharm 2019.2已经发布了,令人兴奋的新功能,开始支持Python 3.8,改进的Jupyter Notebook体验以及更多其他更改. PyCharm 2019.2发布亮点: 改进了Ju ...
- python开发环境功能介绍_第一模块 第3章 Python介绍与环境配置
python入门(全为重点) 1. 编程语言介绍 编程语言分类.总结 2. python介绍 3. 解释器多版本共存 4. 运行python程序的两种方式 5. 一个python程序运行的三个步骤(* ...
- python实现登录功能_python实现用户登录功能模块
python实现登录功能模块#!/usr/bin/env python while True: user = raw_input('Please input username:') if user = ...
- [转载] python字典查询功能_Python中的字典功能
参考链接: Python中的字典dictionary方法 (cmp(), len(), items()-) python字典查询功能 Let's check out some important fu ...
最新文章
- 秒懂 CountDownLatch 与 CyclicBarrier 使用场景
- 没事试试50mm1.4
- 大数据WEB阶段总结
- 把经典的ABAP webdynpro应用配置到SAP Fiori Launchpad里
- [TJOI2013]拯救小矮人(反悔贪心证明),「ICPC World Finals 2019」Hobson 的火车(基环树,差分)
- Java的jvm原理和常识
- windows 打开exe传参_“以管理员身份运行”,这个打开软件时经常遇到的问题,有何含义...
- 模拟登陆教务处获取成绩
- assert函数_类成员函数指针在成员函数内部的调用
- 我的世界服务器怎么修改标语,怎么用资源包修改我的世界闪烁标语
- vue 图片拖拉转放大缩小组件
- 把一个base64编码的图片绘制到canvas (canvas的图片在转成dataurl)
- android设备如何挂载sdcard(有些设备是自动挂载的)
- matlab 保存图片大小尺寸_改变figure大小存储图片(matlab)
- java实现二十四节气计算
- Ubuntu Desktop LTS - 安装 64 位谷歌 Chrome 浏览器
- 表值函数和标量值函数
- 联通预存话费送iphone
- 计算机技术在中医药中的应用,计算机药物虚拟筛选技术在中医药领域中的应用前景...
- Facebook/atc环境搭建总结