自己在備考英語競賽,但是網(wǎng)上單詞軟件現(xiàn)有的詞庫都沒有包含,索性自己寫一個小程序,以來自用。
沒有花里胡哨的功能,但自用刷詞也夠用了。
實現(xiàn)功能
模擬練習(xí)模式、考試模式、查看詞庫模式(可直接修改詞庫)
模擬練習(xí)模式:
-
又細分為三種模式:正向答題(看英文寫中文)、反向答題(看中文寫英文),混合答題
-
進入模式后可選擇題數(shù)量,回車開始答題
-
每完成一道題即可知道自己答對與否,以便反復(fù)進行記憶
-
關(guān)閉程序即可結(jié)束
import random
def setting_a():#進行開始練習(xí)之前的一些設(shè)定
print("請設(shè)置本次練習(xí)模式\n1.看英文寫中文\t2.看中文寫英文")
P=input("")
print("請設(shè)置本次練習(xí)題量:")
O=input("")
return P,int(O)
def see_english_a(O):#看英文答中文模式
n=input("準備好了按回車開始開始吧")
while n=='':
wrong=list()#創(chuàng)建一個裝錯題的列表
for i in range(0,O):
L=list(WORDS.items())
x=random.randint(0,len(L)-1)
key=(L[x][0]) #選中題目
right_key=L[x][1] #設(shè)定答案
print("\n"+key) #apple
user_key=input("") #蘋果
if user_key == right_key:
print("回答正確")
else:
wrong.append((L[x]))
print("回答錯誤,正確答案是:{}".format(right_key))
i+=1
n='1'
def see_chinese_a(O):
n=input("準備好了按回車開始開始吧")
while n=='':
wrong=list()
for i in range(0,O):
L=list(WORDS.items())
x=random.randint(0,len(L)-1)
value=(L[x][1]) #從庫列表中取一個數(shù)
right_value=L[x][0]
print("\n"+value) #蘋果
user_value=input("") #apple
if user_value == right_value:
print("回答正確")
else:
wrong.append((L[x]))
print("回答錯誤,正確答案是:{}".format(right_value))
i+=1
n='1'
考試模式:
-
又細分為三種模式:正向答題(看英文寫中文)、反向答題(看中文寫英文),混合答題
-
進入模式后可選擇題數(shù)量,回車開始答題
-
在完成考試前不會知道題目正確與否以及考試情況,充分還原現(xiàn)實中的考試
-
結(jié)束考試后,可以知道答題情況(正確率)以及錯題回顧
import random
def setting_s():
print("請設(shè)置本次練習(xí)模式\n1.看英文寫中文\t2.看中文寫英文\t3.混合模式")
P=input("")
print("請設(shè)置本次練習(xí)題量:")
O=input("")
return P,int(O)
def see_english_s(O):
n=input("準備好了按回車開始吧")
while n=='':
z=0 #記錄正確題數(shù)
wrong=list()
for i in range(0,O):
L=list(WORDS.items())
x=random.randint(0,len(L)-1)
key=(L[x][0]) #選中題目
right_key=L[x][1] #設(shè)定答案
print("\n"+key) #apple
user_key=input("") #蘋果
if user_key == right_key:
z=z+1
else:
wrong.append((L[x]))
i+=1
if O-z==0:
print("本次考試結(jié)束,一共完成{}題。\n正確率100%".format(O))
else:
print('本次考試結(jié)束,一共完成{}題。\n其中正確{}題,錯誤{}題\n本次您的正確率為:{:.2%}'.format(O,z,O-z,z/O))
print("錯誤單詞如下{}".format(wrong))
n='1'
def see_chinese_s(O):
n=input("準備好了按回車開始吧")
while n=='':
wrong=list()
z=0 #記錄正確題數(shù)
for i in range(0,O):
L=list(WORDS.items())
x=random.randint(0,len(L)-1)
value=(L[x][1]) #從庫列表中取一個數(shù)
right_value=L[x][0]
print("\n"+value) #蘋果
user_value=input("") #apple
if user_value == right_value:
z=z+1
else:
wrong.append((L[x]))
i+=1
if O-z==0:
print("本次考試結(jié)束,一共完成{}題。\n正確率100%".format(O))
else:
print('本次考試結(jié)束,一共完成{}題。\n其中正確{}題,錯誤{}題\n本次您的正確率為:{:.2%}'.format(O,z,O-z,z/O))
print("錯誤單詞如下{}".format(wrong))
n='1'
def mixed_s(O):
n=input("準備好了按回車開始吧")
while n=='':
wrong=list()
z=0 #記錄正確題數(shù)
for i in range(0,O):
L=list(WORDS.items())
x=random.randint(0,len(L)-1)
y = random.randint(0,1)
if y ==1: #see_chinese
value=(L[x][1]) #從庫列表中取一個數(shù)
right_value=L[x][0]
print("\n"+value) #蘋果
user_value=input("") #apple
if user_value == right_value:
z=z+1
else:
wrong.append((L[x]))
i+=1
elif y==0: #see_english
value=(L[x][0]) #從庫列表中取一個數(shù)
right_value=L[x][1]
print("\n"+value) #apple
user_value=input("") #蘋果
if user_value == right_value:
z=z+1
else:
wrong.append((L[0]))
i+=1
if O-z==0:
print("本次考試結(jié)束,一共完成{}題。\n正確率100%".format(O))
else:
print('本次考試結(jié)束,一共完成{}題。\n其中正確{}題,錯誤{}題\n本次您的正確率為:{:.2%}'.format(O,z,O-z,z/O))
print("錯誤單詞如下{}".format(wrong))
n='1'
查看詞庫模式:
-
直接打開“詞庫.xlsx"文
-
在此模式下,可直觀地看這個詞庫里的內(nèi)容進行背記。同時也可直接增刪改查詞庫中的內(nèi)容,保存后再次運行程序即可
import os
os.system('Python\背單詞\詞庫.xlsx')
完整程序
除了上面的小模塊的實現(xiàn),還有一些包括導(dǎo)入“詞庫.xlsx”的代碼,主要是用的openpyxl來實現(xiàn)
請看完整程序,可直接把路徑改成本地路徑進行學(xué)習(xí)。
import random
from openpyxl import *
import os
#從詞庫獲取列表
te1 = load_workbook(u"Python\背單詞\背單詞程序\詞庫.xlsx")
sheetnames1 = te1.sheetnames
t1 = te1[sheetnames1[0]]
WORDS={}
for i in range(1,t1.max_row+1):
english = t1[f'A{i}'].value #英文
chinese = t1[f'B{i}'].value #中文
WORDS[english]=chinese
#練習(xí)
def setting_a():
print("請設(shè)置本次練習(xí)模式\n1.看英文寫中文\t2.看中文寫英文")
P=input("")
print("請設(shè)置本次練習(xí)題量:")
O=input("")
return P,int(O)
def see_english_a(O):
n=input("準備好了按回車開始開始吧")
while n=='':
wrong=list()
for i in range(0,O):
L=list(WORDS.items())
x=random.randint(0,len(L)-1)
key=(L[x][0]) #選中題目
right_key=L[x][1] #設(shè)定答案
print("\n"+key) #apple
user_key=input("") #蘋果
if user_key == right_key:
print("回答正確")
else:
wrong.append((L[x]))
print("回答錯誤,正確答案是:{}".format(right_key))
i+=1
n='1'
def see_chinese_a(O):
n=input("準備好了按回車開始開始吧")
while n=='':
wrong=list()
for i in range(0,O):
L=list(WORDS.items())
x=random.randint(0,len(L)-1)
value=(L[x][1]) #從庫列表中取一個數(shù)
right_value=L[x][0]
print("\n"+value) #蘋果
user_value=input("") #apple
if user_value == right_value:
print("回答正確")
else:
wrong.append((L[x]))
print("回答錯誤,正確答案是:{}".format(right_value))
i+=1
n='1'
#考試
def setting_s():
print("請設(shè)置本次練習(xí)模式\n1.看英文寫中文\t2.看中文寫英文\t3.混合模式")
P=input("")
print("請設(shè)置本次練習(xí)題量:")
O=input("")
return P,int(O)
def see_english_s(O):
n=input("準備好了按回車開始吧")
while n=='':
z=0 #記錄正確題數(shù)
wrong=list()
for i in range(0,O):
L=list(WORDS.items())
x=random.randint(0,len(L)-1)
key=(L[x][0]) #選中題目
right_key=L[x][1] #設(shè)定答案
print("\n"+key) #apple
user_key=input("") #蘋果
if user_key == right_key:
z=z+1
else:
wrong.append((L[x]))
i+=1
if O-z==0:
print("本次考試結(jié)束,一共完成{}題。\n正確率100%".format(O))
else:
print('本次考試結(jié)束,一共完成{}題。\n其中正確{}題,錯誤{}題\n本次您的正確率為:{:.2%}'.format(O,z,O-z,z/O))
print("錯誤單詞如下{}".format(wrong))
n='1'
def see_chinese_s(O):
n=input("準備好了按回車開始吧")
while n=='':
wrong=list()
z=0 #記錄正確題數(shù)
for i in range(0,O):
L=list(WORDS.items())
x=random.randint(0,len(L)-1)
value=(L[x][1]) #從庫列表中取一個數(shù)
right_value=L[x][0]
print("\n"+value) #蘋果
user_value=input("") #apple
if user_value == right_value:
z=z+1
else:
wrong.append((L[x]))
i+=1
if O-z==0:
print("本次考試結(jié)束,一共完成{}題。\n正確率100%".format(O))
else:
print('本次考試結(jié)束,一共完成{}題。\n其中正確{}題,錯誤{}題\n本次您的正確率為:{:.2%}'.format(O,z,O-z,z/O))
print("錯誤單詞如下{}".format(wrong))
n='1'
def mixed_s(O):
n=input("準備好了按回車開始吧")
while n=='':
wrong=list()
z=0 #記錄正確題數(shù)
for i in range(0,O):
L=list(WORDS.items())
x=random.randint(0,len(L)-1)
y = random.randint(0,1)
if y ==1: #see_chinese
value=(L[x][1]) #從庫列表中取一個數(shù)
right_value=L[x][0]
print("\n"+value) #蘋果
user_value=input("") #apple
if user_value == right_value:
z=z+1
else:
wrong.append((L[x]))
i+=1
elif y==0: #see_english
value=(L[x][0]) #從庫列表中取一個數(shù)
right_value=L[x][1]
print("\n"+value) #apple
user_value=input("") #蘋果
if user_value == right_value:
z=z+1
else:
wrong.append((L[0]))
i+=1
if O-z==0:
print("本次考試結(jié)束,一共完成{}題。\n正確率100%".format(O))
else:
print('本次考試結(jié)束,一共完成{}題。\n其中正確{}題,錯誤{}題\n本次您的正確率為:{:.2%}'.format(O,z,O-z,z/O))
print("錯誤單詞如下{}".format(wrong))
n='1'
#主程序
print(
"""
歡迎使用短語背記系統(tǒng)
模擬練習(xí)請按A 進入考試請按S 查看題庫請按D
"""
)
M=input()
if M=='A'or M=='a':
P,O=setting_a()
if P=="1":
see_english_a(O)
if P=="2":
see_chinese_a(O)
elif M=='s'or M=='S':
P,O=setting_s()
if P=="1":
see_english_s(O)
if P=="2":
see_chinese_s(O)
if P=="3":
mixed_s(O)
else:
os.system('Python\背單詞\背單詞程序\詞庫.xlsx')
詞庫樣例:
寫在最后:文章來源:http://www.zghlxwxcb.cn/news/detail-485619.html
初學(xué)者的小作品而已,也沒花太多時間,希望大家能多提一些建議,謝謝~文章來源地址http://www.zghlxwxcb.cn/news/detail-485619.html
到了這里,關(guān)于一個簡潔的背單詞、背短語python程序——英文背記系統(tǒng)(自用)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!