python单词软件哪个好_还在用背单词App?使用Python开发英语单词自测工具,助你逆袭单词王!...

学英语广告

最近也许是刚开学的原因,不管是公众号,还是刷抖音,导出都能看到关于学英语、背单词的广告。

不知道现在学生们背单词买的什么辅导材料。反正我们上学那会,《星火阅读》特别的火。记得当时随书还送一个红色的塑料膜。书中英语单词是红色的其他文字是黑色的。背单词的时候先把塑料膜盖在书上,然后就只能看到翻译和音标,从而起到自测英语的作用。一页看完了取下塑料膜,再核对哪些单词记错了。就这么一个无脑的功能,当时的我们都觉得好犀利,谁

一本这样的背单词书,都不好意思出去装13啊!

今天,我们就使用Python来做一个英语单词自测工具!

需求分析

既然上面说了那么多的怀旧梗,那今天就仿照着从前的方式,做一个稍微高端一些的单词自测工具。

先来看看实现效果吧…程序输入你想测试的单词数量,然后系统自动生成html测试题,之后你就可以通过速记与查看来检测哪些单词你没记住喽…

a4e906ef97fcb79fc8f9470f145fb73c.gif

找单词

背单词我们得先有单词吧?从百度找了一篇2019cet4英语单词表!

0ad4217d7883b06467b79f18a7fc8d68.png

左图下载的word文档的内容包含各种广告,为了方便,我直接把它全部拷贝存在文本文档中,类似右图。 观察保存的文本内容,我们可以通过 斜杠’/‘

生成测试题

我们准备好了试题,怎么生成测试题呢?之前学习excel读写的时候,写过一篇英语单词自测的文章:

c2928912f3d1b829df7d52f164edaa39.png

先生成单词音标,然后用户输入翻译,最后再D列追加正确的翻译… 最近没怎么学习web端的知识,所以今天我们来写一套自动生成html测试题的练习吧! 准备基础html文档root.html:

清风Python英语自测工具

清风Python英语单词自测工具

序号翻译音标单词翻牌

{content}

$("button").click(function() {

var word = $("." + $(this).attr('line'));

if (word.is(':visible')) {

word.slideUp();

} else {

word.slideDown();

}

});

其中content的内容,为我们等下自动生成试题…

其中引入的bootstrap、jQuery,都放在代码同级的basic.html文件夹中…

Python代码编写

Python的代码实现起来也比较简单,读取用户测试数量,然后random获取随机测试内容,拆分数据后进行html内容组装,最终生成自测html练习题:

# -*- coding: utf-8 -*-

# @Author : 王翔

# @WeChat : King_Uranus

# @公众号 : 清风Python

# @Date : 2019/9/16 01:14

# @Software : PyCharm

# @version :Python 3.7.3

# @File : EnglishWordsTest.py

import os

import random

import re

class EnglishWordsTest:

def __init__(self):

self.root_path = os.path.dirname(os.path.realpath(__file__))

with open(os.path.join(self.root_path, 'basic', 'cet4.txt'), encoding='utf-8') as f:

_all_words = f.readlines()

self.html = ""

self.clean_data(random.sample(_all_words, text_num))

def clean_data(self, data):

exam_data = list(map(lambda x: re.sub("\s", '', x).split('/'), data))

for num, line in enumerate(exam_data, start=1):

self.html += """

{0}{3}{2}
{1}
查看

""".format(num, *line)

with open(os.path.join(self.root_path, 'basic', 'root.html'), encoding='utf-8') as f:

data = f.read()

with open(os.path.join(self.root_path, 'exam.html'), 'w+', encoding='utf-8') as f:

f.write(data.replace('{content}', self.html))

if __name__ == '__main__':

print("请输入所需测试的单词数量(范围:1-100):")

while True:

try:

text_num = int(input())

if 1 < text_num < 100:

break

except ValueError:

pass

print("请仔细阅读输入范围!")

EnglishWordsTest()

关于文件

cet4的单词、涉及到的css、js基础模板,就不在文章中赘述了…

如果大家喜欢这个Python的英语测试题联系,公众号后台回复学英语即可获取整套代码及文件。

The End

OK,今天的内容就到这里,如果觉得内容对你有所帮助,欢迎点赞。

期待你关注我的公众号 清风Python,如果觉得不错,希望能动动手指转发给你身边的朋友们。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值