📜  使用Python的英语词典应用程序

📅  最后修改于: 2022-05-13 01:54:58.351000             🧑  作者: Mango

使用Python的英语词典应用程序

字典在Python中是数据值的无序集合,用于像地图一样存储数据值,与其他仅将单个值作为元素保存的数据类型不同,字典包含key:value对。字典中提供了键值,使其更加优化。字典中的每个键值对都用冒号分隔:,而每个键都用“逗号”分隔。

Python中的字典的工作方式类似于现实世界中的字典。字典的键必须是唯一的并且是不可变的数据类型,例如字符串、整数和元组,但键值可以重复并且可以是任何类型。

注意– 要了解有关词典的更多信息,请单击此处。

需要的模块:

  • json:自带Python,所以不需要外部安装。要了解有关 JSON 的更多信息,请单击此处。
  • difflib:此模块提供用于比较序列的类和函数。它还内置了Python ,因此无需外部安装。

脚步:

  1. 下载包含Python字典数据类型格式的英语字典单词的JSON文件,或以这种方式排列文件内容。
  2. 创建一个文件夹并在该文件夹中添加下载的 .json 文件和Python脚本。
  3. 在Python编辑器中,导入所需的模块。

下面是实现。

# Import the modules required
import json
from difflib import get_close_matches
  
# Loading data from json file
# in python dictionary
data = json.load(open("dictionary.json"))
  
def translate(w):
    # converts to lower case
    w = w.lower()
  
    if w in data:
        return data[w]
    # for getting close matches of word
    elif len(get_close_matches(w, data.keys())) > 0:             
        yn = input("Did you mean % s instead? Enter Y if yes, or N if no: " % get_close_matches(w, data.keys())[0])
        yn = yn.lower()
        if yn == "y":
            return data[get_close_matches(w, data.keys())[0]]
        elif yn == "n":
            return "The word doesn't exist. Please double check it."
        else:
            return "We didn't understand your entry."
    else:
        return "The word doesn't exist. Please double check it."
  
# Driver code
word = input("Enter word: ")
output = translate(word)
  
if type(output) == list:
    for item in output:
        print(item)
else:
    print(output)
input('Press ENTER to exit') 

重要的是,输出不应该随着不同的情况而变化,例如相同文本的大写和小写输入应该相同,即rain 或 Rain 或 RaIn 应该产生相同的输出。此外,如果用户拼写错误,它应该返回与输入的词相关的关闭词或打印一个用户友好的消息,该词不存在。

输入:

rain

输出:
字典-python-脚本

对于混合情况——
输入:

RaIn

输出:
字典-python-脚本

如果拼写错误,它会给出与用户键入的单词具有最接近含义的单词,如图所示。假设输入是“rane”并且用户想要搜索“range”,那么输出将如下所示。
输入:

rane

输出:
字典-python-脚本