我正在尝试打印出一条消息。 如果找不到字典中的单词,那么它应该打印出一条消息而不是给出错误。 我的想法是
if bool(bool(dictionary[word])) == True:
return dictionary[word]
else:
print 'wrong'
但是当我写一些不在字典中的东西而不是它给出类似的东西
时它不起作用Traceback (most recent call last):
File "<pyshell#34>", line 1, in <module>
translate_word('hous')
File "H:\IND104\final\Project 4 - Italian-Spanish Translator\trial 1.py", line 21, in translate_word
if bool(bool(dictionary[word])) == True:
KeyError: 'hous'
那么如何打印出错误信息谢谢。
答案 0 :(得分:10)
您需要使用in
运算符来测试密钥是否在字典中。使用您的变量名称,这将成为:
if word in dictionary:
如果您想检查是否存在密钥并一次性检索该值,您可以使用get()
方法:
value = dictionary.get(word)
if value is not None:
...
您可以提供自己的默认值get()
,如果找不到该键,则返回该值。然后你可以这样编写你的代码:
print dictionary.get(word, 'wrong')
答案 1 :(得分:2)
实现目标的一种方法是try
/ except
阻止:
try:
return dictionary[word]
except KeyError:
print 'wrong'
return None
答案 2 :(得分:1)
if word in dictionary:
return dictionary[word]
else:
print("wrong")
答案 3 :(得分:0)
索引字典假设密钥已经存在,为了测试密钥是否在字典中,请尝试:
#Check to see if a key is in a dictionary
dictionary = {'key' : 123}
if 'key' in dictionary:
#Do something
else:
#Do something else
[dictionary]中的[key]现在是比以前的has_key([key])字典方法更受青睐的语法:reference
答案 4 :(得分:0)
学习一些异常处理的时间:
try:
some_stuff()
except:
print "Sorry, an error occured"