Python如何摆脱PyDictionary错误消息



我有以下代码来检查字典中是否有单词。如果单词不存在,则调用字典.意思返回 None。问题是它还会吐出一条错误消息"错误:发生以下错误:列表索引超出范围"。我做了一些研究,似乎我可以使用try:的组合,除了:但无论我尝试什么,错误消息仍然被打印出来。下面是一个显示问题的测试用例。如何在不显示索引错误的情况下使此代码正常工作?

法典:

def is_word(word):
from PyDictionary import PyDictionary
dictionary=PyDictionary()
rtn = (dictionary.meaning(word))
if rtn == None:
return(False)
else:
return (True)
my_list = ["no", "act", "amp", "xibber", "xyz"]
for word in my_list:
result = is_word(word)
if result == True:       
print(word, "is in the dictionary")
else:
print(word, "is NOT in the dictionary")

输出:

no is in the dictionary
act is in the dictionary
amp is in the dictionary
Error: The Following Error occured: list index out of range
xibber is NOT in the dictionary
Error: The Following Error occured: list index out of range
xyz is NOT in the dictionary

我猜你的try/except 块在错误的块周围,或者你没有正确捕获它,但如果没有你的代码很难分辨。

尝试将 try/except 放在可能出错的代码部分周围(在这种情况下为字典检查(。

编辑:

我的错误。PyDictionary库正在打印错误。您应该能够通过执行meaning(word, disable_errors=True)来使其静音。

def is_word(word):
from PyDictionary import PyDictionary
dictionary = PyDictionary()
try:
output = dictionary.meaning(word, disable_errors=True)
except:
return False
else:
return bool(output)
my_list = ["no", "act", "amp", "xibber", "xyz"]
for word in my_list:
result = is_word(word)
if result:       
print("{} is in the dictionary".format(word))
else:
print("{} is NOT in the dictionary".format(word))

第二次编辑: 使用 https://github.com/tasdikrahman/vocabulary。

from vocabulary.vocabulary import Vocabulary
vb = Vocabulary()
my_list = ["no", "act", "amp", "xibber", "xyz"]
for word in my_list:
if vb.meaning(word):
print("{} is in the dictionary".format(word))
else:
print("{} is NOT in the dictionary".format(word))

相关内容

最新更新