Python如何消除PyDictionary错误消息

Python如何消除PyDictionary错误消息,python,python-3.x,dictionary,Python,Python 3.x,Dictionary,我有以下代码来检查字典中是否有单词。如果单词不存在,则调用dictionary.means返回None。问题是,它还发出一条错误消息错误:发生了以下错误:列表索引超出范围。我做了一些研究,似乎我可以使用try:,除了:但无论我尝试了什么,错误消息仍然会打印出来。下面是一个显示问题的测试用例。如何在不显示索引错误的情况下使此代码正常工作 代码: 输出: no is in the dictionary act is in the dictionary amp is in the dictionary

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

代码:

输出:

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放在可能导致字典检查出错的代码段周围

编辑:

我的错误。错误正在被打印出来。您应该能够通过执行有意义的单词、禁用\u errors=True使其静音

第二次编辑: 使用


我猜您的try/except块位于错误的块附近,或者您没有正确地捕获它,但是如果没有代码,很难判断

在这种情况下,请尝试将Try/except放在可能导致字典检查出错的代码段周围

编辑:

我的错误。错误正在被打印出来。您应该能够通过执行有意义的单词、禁用\u errors=True使其静音

第二次编辑: 使用


答案是“尝试/抓住”。你把它放哪儿了?显示代码。Try/Catch是答案。你把它放哪儿了?显示代码。谢谢,我在文档中没有看到禁用错误选项。这段代码的输出表明字典中没有找到每个单词,因此似乎只有else子句在运行,这似乎是一个逻辑问题。这应该足够让我走了,你好,詹纳。上面的代码对你来说正确吗?真单词说它们在字典里,假单词说它们不在字典里?我仔细研究了一下,发现如果运行output=dictionary.meaningword,在try:except:block之外禁用\u errors=True,就会得到一个无效的参数错误。所以我认为try:except:只是掩盖了一个真正的错误。看来,我正在运行的PyDypic版本不考虑DababySaleReals= Trand是对字典的有效参数。你能告诉我你在哪里找到这个论点吗?也许我有打字错误什么的?嗯,再次阅读你的帖子,我看到了你添加到PyDictionary代码中的链接,并看到了你从哪里得到的参数,如果disable_errors==False:我很困惑为什么将这个值设置为True对我不起作用。你有什么想法吗?嗯,我想问题是,这个库添加了这些代码,所以它出现在GitHub中,但还没有推出新的版本,所以你正在安装的不会有那个功能标志。我认为解决方案是要么捕获打印输出,使用不同的库,要么在本地安装中更改代码。捕获print语句可以使用以下内容:我不知道您是否有选择权,但可以使用。我将编辑我的答案。谢谢,我没有在文档中看到禁用错误选项。这段代码的输出表明字典中没有找到每个单词,因此似乎只有else子句在运行,这似乎是一个逻辑问题。这应该足够让我走了,你好,詹纳。上面的代码对你来说正确吗?真单词说它们在字典里,假单词说它们不在字典里?我仔细研究了一下,发现如果运行output=dictionary.meaningword,在try:except:block之外禁用\u errors=True,就会得到一个无效的参数错误。所以我认为try:except:只是掩盖了一个真正的错误。看来,我正在运行的PyDypic版本不考虑DababySaleReals= Trand是对字典的有效参数。你能告诉我你在哪里找到这个论点吗?也许我有打字错误什么的?嗯,再次阅读你的帖子,我看到了你添加到PyDictionary代码中的链接,并看到了你从哪里得到的参数,如果disable_errors==False:我很困惑为什么将这个值设置为True对我不起作用。你有什么想法吗?嗯,我想问题是,这个库添加了这些代码,所以它出现在GitHub中,但还没有推出新的版本,所以你正在安装的不会有那个功能标志。我认为解决方案是要么捕获打印输出,使用不同的库,要么在本地安装中更改代码。捕获print语句可以使用以下内容:我不知道您是否有选择权,但可以使用。我将编辑我的答案。
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
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))
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))