1. 程式人生 > 程式設計 >python英語單詞測試小程式程式碼例項

python英語單詞測試小程式程式碼例項

這篇文章主要介紹了python英語單詞測試小程式程式碼例項,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

爬取了扇貝英語網,並製作了一個英語單詞測試的小程式,還能生成錯詞本,一起來看下程式碼吧~

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)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。