0

我正在编写代码并遇到一个问题,我试图根据是否在字典中找到用户输入来使用 if 语句。例如,假设用户想在地址簿中查找姓名,我将他们的响应保存到变量“findName”,该变量是字典的键。假设字典名称是“联系人”。

if contact.has_key[findName] == True: 
    #Do something here. 
elif contact.has_key[findName] == False: 
    #Do something else.

问题是,每次我这样做时,都会收到一条错误消息:“builtin_function_or_method”对象没有属性“ getitem ”。

我真的不知道我的代码哪里出错了,有人可以指导我正确的答案和解释吗?

4

2 回答 2

3

您没有调用 has_key 方法。

它应该是

if contact.has_key(findName) == True: 
    #Do something here. 
elif contact.has_key(findName) == False: 
    #Do something else.

一种更 Pythonic 的方法是使用in,您不需要检查可以使用的 False 条件 use else

if findName in contact: 
    #Do something here. 
else: 
    #Do something else.
于 2013-10-19T01:20:27.483 回答
2

您有语法错误。后面不应该有冒号elif,而 has_key 是一个方法:

if contact.has_key(findName) == True: 
    #Do something here. 
elif contact.has_key(findName) == False: 
    #Do something else.

但这当然可以简化为:

if contact.has_key(findName): 
    #Do something here. 
else:
    #Do something else.
于 2013-10-19T01:18:41.480 回答