Python字典故障安全
这个问题在这里已经有了答案:
你可以使用try / except块:
try:
# Notice that I got rid of str(Lookup)
# raw_input always returns a string
print Guide[Lookup]
# KeyErrors are generated when you try to access a key in a dict that doesn't exist
except KeyError:
print 'Key not found.'
此外,为了让您的代码正常工作,您需要制作下面这行代码:
if again != ('YES' or 'Y'):
喜欢这个:
if again not in ('YES', 'Y'):
这是因为,正如它目前的情况,你的代码正在被Python评估如下:
if (again != 'YES') or 'Y':
此外,由于非空字符串在Python中计算为True
,因此使用这样的代码将使if语句始终返回True
因为'Y'
是非空字符串。
最后,你可以完全摆脱这部分:
else:
Running = True
因为它没有做任何事情,只是将一个变量分配给它已经相等
两个选项。
使用in
运算符:
d = {}
d['foo'] = 'bar'
'foo' in d
Out[66]: True
'baz' in d
Out[67]: False
或者使用字典的get
方法并提供可选的default-to参数。
d.get('foo','OMG AN ERROR')
Out[68]: 'bar'
d.get('baz','OMG AN ERROR')
Out[69]: 'OMG AN ERROR'
如果更换,你可以得到你想要的
print Guide[str(Lookup)]
同
badword = 'Sorry, the word you were looking for could not be found, would you like to try another search?'
print Guide.get(lookup,badword)
跳出来的一件事是用大写字母命名你的字典。 一般来说大写字母会保存为类。 另一种有趣的事情是,这是我第一次看到实际用作字典的字典。 :)
链接地址: http://www.djcxy.com/p/28887.html