使用Python的英语词典应用程序
字典在Python中是数据值的无序集合,用于像地图一样存储数据值,与其他仅将单个值作为元素保存的数据类型不同,字典包含key:value
对。字典中提供了键值,使其更加优化。字典中的每个键值对都用冒号分隔:,而每个键都用“逗号”分隔。
Python中的字典的工作方式类似于现实世界中的字典。字典的键必须是唯一的并且是不可变的数据类型,例如字符串、整数和元组,但键值可以重复并且可以是任何类型。
注意– 要了解有关词典的更多信息,请单击此处。
需要的模块:
- json:自带Python,所以不需要外部安装。要了解有关 JSON 的更多信息,请单击此处。
- difflib:此模块提供用于比较序列的类和函数。它还内置了Python ,因此无需外部安装。
脚步:
- 下载包含Python字典数据类型格式的英语字典单词的
JSON
文件,或以这种方式排列文件内容。 - 创建一个文件夹并在该文件夹中添加下载的 .json 文件和Python脚本。
- 在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
输出:
对于混合情况——
输入:
RaIn
输出:
如果拼写错误,它会给出与用户键入的单词具有最接近含义的单词,如图所示。假设输入是“rane”并且用户想要搜索“range”,那么输出将如下所示。
输入:
rane
输出: