2017-05-26 80 views
0
def ok(): 
    global name 
    name=str(entryname.get()) 
    try: 
     meaning=str(dictionary.meaning(name)) 
    except: 
     print "Word not recognized" 

我是新手,上面的代码不断给出一个我想要捕获的错误。无法捕获错误:发生以下错误:列表索引超出范围

当名称是像“sdhgshgf”这样的随机词时,会发生该错误。字典确实返回“无”,我也检查了长度为4. 任何帮助将不胜感激!注意我已经试过except (IndexError, ValueError)

回答

0

那么因为错误只发生在条目不是真实的单词时,我使用PyEnchant在尝试获得定义之前首先检查单词是否是真实的。不知道你是否仍然需要这个,但我只是遇到了类似的问题,感觉就像回答。

>>>import enchant 
>>>wordCheck = enchant.Dict("en_US") 
>>>wordCheck.check("Flower") 
True 
>>>wordCheck.check("sdfl;kjsdflkjsdfl") 
False