我使用的是乙個單詞本的txt檔案,檔名為word.txt
f = "word.txt" # 用變數f接收word.txt的路徑 此時我的檔案和我的程式在同一級目錄,如果你的不在同級目錄,需要填寫完整路徑
a = open(f, encoding='utf-8') # 變數a接收檔案,指定字元級為utf-8
b = list(a) # 把接收的資料轉換為列表,放入變數b中
a.close() # 關閉檔案
return b # 返回變數b 此時b中為列表化的檔案資料
def find_word(x, y: list): # 定義函式,接收兩個形參(x為需要查詢的資料,y為查詢的資料庫)第二個形參y型別為list
cou = 0 # 增加乙個序號
for i in y: # 迴圈接收到的列表
if x in i: # 判斷如果x(查詢的資料)在列表中
cou += 1
print(str(cou) + ".", i.replace(x, f"\033[31m\033[0m"), end="") # 輸出字串型別序號,使用replace替換,達到高亮效果
def main_():
lis = open_file() # lis = open_file()這個函式的返回值時變數b,所有lis有了列表型別檔案所有資料
while true: # 寫乙個迴圈
lis = open_file()
print("詞庫載入成功.....")
word = input("需要查詢的值,輸入q退出: ") # word 接收乙個輸入的需要查詢的值
if word == "q" and word == "q": # 如果輸入q或q為退出
break
find_word(word,lis) # 呼叫查詢函式,傳入word和lis
if __name__ == '__main__':
main_()
方法二:
# 作業1.電子詞典(模糊查詢,高亮顯示)
def get_word_list() -> list:
f = open("word.txt", encoding="utf-8")
results = f.readlines()
f.close()
return results
def find_word(w: str, lis: list) -> none:
count = 0
for row in lis:
if w in row:
count += 1
print(str(count) + ".", row.replace(w, f"\033[31m\033[0m"), end="")
def main():
lis = get_word_list()
print("詞庫載入成功....")
while true:
word = input("請輸入您要查詢的單詞或漢字,q退出:")
if word == "q":
break
find_word(word, lis)
if __name__ == '__main__':
main()
java電子字典
這段時間,在寫個背單詞的軟體,就順手寫了個電子詞典,等完成了一起發布 初期找了好久字典庫,發現網上沒有公開的字典庫,都是有版權的,而且還加密了,比如靈格斯的,都加密了,最後選了用星際譯王 早前用的牛津 詞典庫,也是要版權的,星際譯王也侵權用了,也沒辦法了,反正寫來自用 主要是兩個檔案,idx 索引檔...
bzoj 1819 電子字典 Trie
description 人們在英文本典中查詢某個單詞的時候可能不知道該單詞的完整拼法,而只知道該單詞的乙個錯誤的近似拼法,這時人們可能陷入困境,為了查詢乙個單詞而浪費大量的時間。帶有模糊查詢功能的電子字典能夠從一定程度上解決這一問題 使用者只要輸入乙個字串,電子字典就返回與該單詞編輯距離最小的幾個單...
洛谷P4407 JSOI2009 電子字典
人們在英文本典中查詢某個單詞的時候可能不知道該單詞的完整拼法,而只知道該單詞的乙個錯誤的近似拼法,這時人們可能陷入困境,為了查詢乙個單詞而浪費大量的時間。帶有模糊查詢功能的電子字典能夠從一定程度上解決這一問題 使用者只要輸入乙個字串,電子字典就返回與該單詞編輯距離最小的幾個單詞供使用者選擇。刪除串中...