2017-05-26 25 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