1.代码

import requestslink = requests.get('https://www.shanbay.com/api/v1/vocabtest/category/')
#先用requests下载链接。
js_link = link.json()
#解析下载得到的内容。
bianhao = int(input('''请输入你选择的词库编号,按Enter确认
1,GMAT  2,考研  3,高考  4,四级  5,六级
6,英专  7,托福  8,GRE  9,雅思  10,任意
>'''))
#让用户选择自己想测的词库,输入数字编号。int()来转换数据类型
ciku = js_link['data'][bianhao-1][0]
#利用用户输入的数字编号,获取题库的代码。如果以输入“高考”的编号“3”为例,那么ciku的值就是,在字典js_link中查找data的值,data是一个list,查找它的第bianhao-1,也就是第2个元素,得到的依然是一个list,再查找该list的第0个元素。最后得到的就是我们想要的NCEE。
test = requests.get('https://www.shanbay.com/api/v1/vocabtest/vocabularies/?category='+ciku)
#下载用于测试的50个单词。
words = test.json()
#对test进行解析。
danci = []
#新增一个list,用于统计用户认识的单词
words_knows = []
#创建一个空的列表,用于记录用户认识的单词。
not_knows = []
#创建一个空的列表,用于记录用户不认识的单词。
print ('测试现在开始。如果你认识这个单词,请输入Y,否则直接敲Enter:')
n=0
for x in words['data']:
#启动一个循环,循环的次数等于单词的数量。n=n+1print ("\n第"+str(n)+'个:'+x['content'])#加一个\n,用于换行。answer = input('认识请敲Y,否则敲Enter:')#让用户输入自己是否认识。if answer == 'Y':#如果用户认识:danci.append(x['content'])words_knows.append(x)#就把这个单词,追加进列表words_knows。else:#否则not_knows.append(x)#就把这个单词,追加进列表not_knows。print ('\n在上述'+str(len(words['data']))+'个单词当中,有'+str(len(danci))+'个是你觉得自己认识的,它们是:')
print(danci)print ('现在我们来检测一下,你有没有真正掌握它们:')
wrong_words = []
right_num = 0
for y in words_knows:print('\n\n'+'A:'+y['definition_choices'][0]['definition'])#我们改用A、B、C、D,不再用rank值,下同print('B:'+y['definition_choices'][1]['definition'])print('C:'+y['definition_choices'][2]['definition'])print('D:'+y['definition_choices'][3]['definition'])xuanze = input('请选择单词\"'+y['content']+'\"的正确翻译(填写数字即可):')dic = {'A':y['definition_choices'][0]['rank'],'B':y['definition_choices'][1]['rank'],'C':y['definition_choices'][2]['rank'],'D':y['definition_choices'][3]['rank']}#我们创建一个字典,搭建起A、B、C、D和四个rank值的映射关系。if dic[xuanze] == y['rank']:#此时dic[xuanze]的内容,其实就是rank值,此时的代码含义已经和之前的版本相同了。right_num += 1else:wrong_words.append(y)print ('现在,到了公布成绩的时刻:')
print ('在'+str(len(words['data']))+'个'+js_link['data'][bianhao-1][1]+'词汇当中,你认识其中'+str(len(danci))+'个,实际掌握'+str(right_num)+'个,错误'+str(len(wrong_words))+'个。')
#这是句蛮复杂的话,对照前面的代码和json文件你才能理解它。一个运行示例是:在50个高考词汇当中,你认识其中30个,实际掌握25个,错误5个。save = input ('是否打印并保存你的错词集?填入Y或N: ')
#询问用户,是否要打印并保存错题集。
if save == 'Y':
#如果用户说是:f = open('错题集.txt', 'a+', encoding="utf-8")#在当前目录下,创建一个错题集.txt的文档。print ('你记错的单词有:')f.write('你记错的单词有:\n')#写入"你记错的单词有:\n"m=0for z in wrong_words:#启动一个循环,循环的次数等于,用户的错词数:m=m+1print (z['content'])#打印每一个错词。f.write(str(m+1) +'. '+ z['content']+'\n')#写入序号,写入错词。print ('你不认识的单词有:')f.write('你没记住的单词有:\n')#写入"你没记住的单词有:\n"s=0for x in not_knows:#启动一个循环,循环的次数等于,用户不认识的单词数。print (x['content'])#打印每一个不认识的单词。f.write(str(s+1) +'. '+ x['content']+'\n')#写入序号,写入用户不认识的词汇。print ('错词和没记住的词已保存至当前文件目录下,下次见!')#告诉用户,文件已经保存好。#在网页版终端运行时,文件会被写在课程的服务器上,你看不到,但它的确已经存在。
else:
#如果用户不想保存:print('下次见!')#输出“下次见!”

2.结果

  1. 输入词库编号
  2. 开始测试
  3. 获得结果

爬虫小程序 - 单词量测试相关推荐

  1. 小程序真机测试错误代码_测试不充分:知道您的代码是否真的可以投入生产的5种方法...

    小程序真机测试错误代码 当今的企业都在提高软件交付速度. 但是,发布周期较短时,通常会牺牲代码质量. 当今的DevOps和QA团队承受着防止代码缺陷进入生产的压力,但他们还需要管理空前的工作负载,并且 ...

  2. 微量小程序联盟,如何实现微信小程序换量和微信小程序推广?

    长期以来各位许多小程序运营者,一直在为小程序如何推广和烦恼!今天我就为大家推荐一个小程序换量推广平台,可以快速帮我们解决小程序粉丝增长难的问题! 微量小程序联盟--专注小程序换量推广 微量小程序联盟- ...

  3. 微信小程序换量心得—微量小程序联盟

    换量是门技术活 换量绝对是门技术活,目前最简单的换量方式是,去找与你体量差不多,和你的小程序的用户体量的小程序去换量,这种形式会有以下几个问题: 一.换量对象问题:比如难找到和你体量差不多,又愿意换量 ...

  4. 笔趣阁小说站的爬虫小程序

    从笔趣阁(www.biquge.com.tw)爬取整本小说的内容,写入txt文件. 再也不用到处找地方下载了,省的遭遇各种不靠谱. 代码如下: import urllib.request from b ...

  5. 爬虫爬评书吧_爬虫 + 小程序 自定义开发一个听书程序

    最近工作之余会听听评书,但主流门户收费加广告着实让人烦躁.作为IT人,怎能如此顺应别人家的产品规则. 下面以 python + taro 为例,写一个爬虫 + 小程序的播放应用: 最终实现的效果如下: ...

  6. uniapp使用网易有道词典接口做一个背单词小程序-单词发音-有道词典接口-不用注册token直接发请求

    uniapp使用网易有道词典接口做一个背单词小程序(不用注册token直接发请求) uniapp使用网易有道词典接口做一个背单词小程序-单词发音-有道词典接口 用到的接口: *1.获取单词发音(goo ...

  7. python如何设计爬虫界面软件_Python+PyQt5设计B站视频数据爬虫小程序

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于菜J学Python ,作者J哥 前言 目前,市场上有大量 Python图形用户界面( ...

  8. 微信小程序自动化测试——自定义测试(Minium)

    前文 微信小程序自动化测试--录制回放 提到录制回放 支持输入,文本查找,断言等自动化测试基础操作,无需编写代码,用例生成效率高,但是部分操作不支持,对复杂业务场景有局限性.如果用户希望适用复杂的业务 ...

  9. 渗透测试-微信小程序-公众号测试经验总结

    微信小程序-公众号测试 微信公众号H5端 微信公众号H5端 限制手段及绕过方法: 1.未做限制 使用其他浏览器可直接打开页面进行浏览 2.通过 UserAgent 来限制 现象:使用其他浏览器打开后会 ...

最新文章

  1. python【蓝桥杯vip练习题库】ADV-290成绩排序
  2. MySQL数据库管理常用命令
  3. [Visual Studio+TFS--强大的项目管理工具]
  4. 阿里云服务器的安装以及使用
  5. 处理器指令编码可重定义的方法_从零开始设计四位栈处理器(2)——结构与指令集...
  6. vue webpack打包入口文件是哪个_Vue 学习笔记(二十五):webpack 相关
  7. why do we use process keys
  8. 2016云计算大数据安全论坛即将在北京召开
  9. xp IIS5配置mvc3运行环境
  10. 用计算机弹逆战的简谱,张杰逆战歌曲钢琴简谱
  11. css3 - 图标元素动画效果1 - 只执行一次动画
  12. Padavan编译技巧
  13. thinkphp6.0模型篇之关联预载入
  14. DxO PhotoLab 2.1.2 for Mac精华汉化版 DxO PhotoLab 2.1.2 for Mac中文版
  15. 31.基类的公有成员在派生类中的访问权限由 决定.java_基类的公有成员在派生类中的访问权限由派生方式决定。()...
  16. 新时期,老师该怎么撑伞?
  17. 华为荣耀android是什么系统,华为荣耀Magic自主系统梦碎 还是Android操作系统
  18. JZOJ 5445 失格
  19. Android模仿360动态悬浮窗,像360悬浮窗那样,用WindowManager实现炫酷的悬浮迷你音乐盒(下)...
  20. python selenium的xpath的使用

热门文章

  1. arcpy投影(三)——定义投影、地理变换关系自定义和投影变换Project_managemen(含基准面/椭球体转换参数使用方法,arcpro/arcmap)
  2. ZigBee Routing Tables 路由表
  3. tensorflow——模型的保存和恢复tf.trian.saver()
  4. 20世纪中文电影一百强
  5. php target当前页面,href标签target=_blank属性的妙用
  6. pthon图片信息-3cv2-高阶处理
  7. 学习系列之天眼查爬虫
  8. 能和机器划拳,猜中你的表情,百度开了一家超好玩的“AI体验店”
  9. linkedin 分享_如何在保持电子邮件私密性的同时导入LinkedIn联系人
  10. C语言:数组排序(插入法排序)