学英语广告

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

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

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

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

需求分析

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

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

找单词

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

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

生成测试题

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

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

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>清风Python英语自测工具</title><link rel="icon" href="basic/favicon.ico"><link href="basic/bootstrap.min.css" rel="stylesheet"><link href="basic/index.css" rel="stylesheet"><script src="basic/jquery.min.js"></script>
</head><body><div class="container"><h3 class="title">清风Python英语单词自测工具</h3><table class="table table-striped table-hover"><thead><td>序号</td><td>翻译</td><td>音标</td><td>单词</td><td>翻牌</td></thead><tbody>{content}</tbody></table></div>
</body>
<script>
$("button").click(function() {var word = $("." + $(this).attr('line'));if (word.is(':visible')) {word.slideUp();} else {word.slideDown();}});
</script></html>

其中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.pyimport os
import random
import reclass 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 += """<tr><td>{0}</td><td>{3}</td><td>{2}</td><td><div class='word line{0}'>{1}</div></td><td><button class='show'line='line{0}'>查看</button></td></tr>""".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:breakexcept ValueError:passprint("请仔细阅读输入范围!")EnglishWordsTest()

关于文件

cet4的单词、涉及到的css、js基础模板,就不在文章中赘述了…
如果大家喜欢这个Python的英语测试题联系,公众号后台回复学英语即可获取整套代码及文件。

The End

OK,今天的内容就到这里,如果觉得内容对你有所帮助,欢迎点赞。
期待你关注我的公众号 清风Python,如果觉得不错,希望能动动手指转发给你身边的朋友们。

作者:清风Python

还在用背单词App?使用Python开发英语单词自测工具,助你逆袭单词王!相关推荐

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

    学英语广告 最近也许是刚开学的原因,不管是公众号,还是刷抖音,导出都能看到关于学英语.背单词的广告. 不知道现在学生们背单词买的什么辅导材料.反正我们上学那会,<星火阅读>特别的火.记得当 ...

  2. python服务端多进程压测工具

    本文描述一个python实现的多进程压测工具,这个压测工具的特点如下: 多进程 在大多数情况下,压测一般适用于IO密集型场景(如访问接口并等待返回),在这种场景下多线程多进程的区分并不明显(详情请参见 ...

  3. 杭州python开发工资_杭州测试转python开发难不难?

    你之前是软件测试工程师吗?想要从测试转为开发人员?测试转python开发难不难?其实,测试转开发会比较困难点,开发转测试比较容易: 测试转开发技术可能会有些跟不上,如果技术跟上了,测试转开发挺好,写代 ...

  4. 『Python开发实战菜鸟教程』工具篇:手把手教学使用VSCode开发Python

    文章目录: 0X01:引子 Python学习资料及开发工具介绍 0x02:实操 基于 Conda 的 Python 安装 VSCode 的安装使用 安装 插件管理按钮使用介绍 VSCode 如何管理项 ...

  5. 加ing形式的单词有哪些_高中英语人教版必修5知识研习Unit4重点单词treat

    treat vt.& vi.治疗:对待:款待 n.款待:招待 归纳拓展 (1)treat sb.well/badly善待/虐待某人 treat...as/like...当作--来对待-- tr ...

  6. android 英语单词app源码,Android英语单词记忆程序源码

    /** * 源码片段 */ package wordroid.activitys; import java.util.ArrayList; import wordroid.database.DataA ...

  7. 用Python开发截图识别OCR小工具

    图片来源于网络 文/GitPython 你一定用过那种"OCR神器",可以把图片中的文字提取出来,极大的提高工作效率. 今天,我们就来做一款实时截图识别的小工具.顾名思义,运行程序 ...

  8. python有道字典_GitHub - qiuzhiqian/Sdet: 这是一个使用python开发的有道词典工具

    Sdet Simple Dictionary Expanded Tool 这是一个简单的词典拓展工具,界面清新,操作简单,功能精巧. 使用平台: Windowns Linux Mac OS 这是一个基 ...

  9. 【python量化】国内外基于python开发的量化回测框架

    文章目录 写在前面 Zipline PyAlgoTrade BackTrader Catalyst Vn.py 总结 写在前面 在进行量化策略开发时,必不可少的就是策略回测,虽然有很多量化回测平台如三 ...

最新文章

  1. 精通mysql_《深入精通Mysql(五)》实战:Mysql实现主从复制
  2. Android Handler 深入学习(1)
  3. linux 编译C语言代码后产生OBJ文件的方法
  4. Chapter 1 First Sight——9
  5. dubbo多网卡时,服务提供者的错误IP注册到注册中心导致消费端连接不上
  6. 赵童鞋带你入门PHP(六) ThinkPHP框架入门
  7. 使用VMware安装CentOS7详请(自己做过测试)
  8. 教小学妹学算法:诺基亚引出的动态规划问题
  9. [bzoj2301] [HAOI2011]Problem b
  10. hibernate连接数据库配置
  11. 网络教育统考计算机怎么考试,网络教育统考怎么考
  12. C++中void指针
  13. Java多线程之FutureTask
  14. IPhone、Windows Mobil、Symbian、Android移动开发前景分析
  15. 英语六级高频词汇速记 + 2020-7听力 Day09
  16. Games101计算机图形学学习笔记:线性代数-向量
  17. LaTeX:字体字号榜值对比
  18. 无线服务器功能,索尼WG-C20无线服务器 功能介绍
  19. 那些三十五岁失业的程序员,后来都干什么去了?
  20. mysql查询各科成绩前三名的记录_mysql巧用连表查询各科成绩前三名

热门文章

  1. 订单编号的数据类型是什么_领域模型与代数数据类型(第三期)
  2. 微信小程序 - 为何setData到页面上有的加分号
  3. python 批量处理文件
  4. 关于C++全局变量和静态变量初始化的一些总结
  5. 偶然搜索看到的杂谈——什麼東西是.NET程序員可以掌握並且可倚仗十年而不管微軟存在與否的技術呢?...
  6. leetcode 95 python
  7. 数据结构—链表-建立单链表
  8. 计算机网络实验:VLAN Practice Lab Setup in Packet Tracer and Configure DHCP Server for multiple VLAN
  9. 2022年1月国产数据库排行榜:TiDB霸榜两年势头不减,openGauss与OceanBase分数大涨...
  10. DB-Engines:Snowflake荣获2021年的年度DBMS