Python实现扇贝英语单词测试与错词本生成程序
本文介绍了一个基于Python的英语单词测试小程序。程序通过爬虫获取扇贝英语网的单词数据,支持用户自定义出题范围,进行单词释义测试,并自动记录未掌握的单词生成错词本。代码包含API调用、界面交互及文件读写功能,适合Python初学者参考学习。
Python单词测试程序概述
本文展示了一个使用Python编写的英语单词测试小程序代码示例,内容详实,对读者的学习或工作具有参考价值。
该程序爬取了扇贝英语网的资源,制作了一个具备单词测试功能的小工具,并支持生成错词本,以下将展示具体代码实现。
核心代码实现与API调用
import requests
#扇贝网爬虫,获取英语单词
category_res=requests.get('https://www.shanbay.com/api/v1/vocabtest/category/?_=1566889802182')
category_json=category_res.json()
category_data=category_json['data']
#选择出题范围
for i in range(10):
print(str(i+1)+'.'+category_data[i][1])
number=int(input('请选择出题范围:'))
url='https://www.shanbay.com/api/v1/vocabtest/vocabularies/'
headers={
'Referer': 'https://www.shanbay.com/vocabtest/',
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1 Safari/605.1.15'
}
params={
'category':category_data[number-1][0],
'_': '1566889452889'
}
res=requests.get(url,headers=headers,params=params)
jsonres=res.json()
vacabularies=jsonres['data']
knows=[]
unknows=[]
print()
print('以下单词你是否认识?')
n=0
z=0
b=open('错词本.txt','a+')
b.write('你不认识的单词有:\n')
#测试开始,挑选认识的单词
for vacabulary in vacabularies:
n=n+1
vacabu=vacabulary['content']
print('第'+str(n)+'个:'+vacabu)
index=vacabularies.index(vacabulary)
while True:
judge=input('认识选Y,不认识选N:')
if judge=='Y':
knows.append(index)
break
elif judge=='N':
unknows.append(index)
z=z+1
b.write(str(z)+'.'+vacabu+'\n')
break
else:
print('请输入Y或者N')
print()
print('测试结束,以下是测试结果:')
print('认识'+str(len(knows))+'个单词,不认识'+str(len(unknows))+'个单词。')
print('你可真棒!')
print()
right=[]
wrong=[]
#选择正确的词义
b.write('你记错的单词有:\n')
m=0
for know in knows:
vacabulary_know=vacabularies[know]
word=vacabulary_know['content']
print()
print(word)
definitions=vacabulary_know['definition_choices']
for i in range(4):
print(str(i+1)+'.'+definitions[i]['definition'])
choice=int(input('单词测试,请选择正确的词义:'))
rank=definitions[choice-1]['rank']
if rank==vacabulary_know['rank']:
right.append(word)
else:
wrong.append(word)
m=m+1
b.write(str(m)+'.'+word+'\n')
print()
print('测试结果出来啦!')
print('认识的单词里掌握了这几个:')
print(right)
print()
print('没掌握的是这几个:')
print(wrong)
以上是本文的全部内容,希望能为读者提供有益的帮助,欢迎继续支持本站获取更多技术资源。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









