2017-10-10 19 views
1

像这样创建的,因此我有我的功能:功能是不是要我的字典里添加信息

def create_contact(contacts, first, last, email, age, phone): 
    """ 
    Creates a contact. 
    """ 

    contacts[(first, last)] = [email, age, phone] 


def contains_contact(contacts, first, last): 
    """ 
    Checks to see if the dictionary contains a contact. 
    """ 
    if (first.lower(), last.lower()) in contacts == True: 
     return(True) 
    else: 
     return(False) 

,然后在我的代码的底部,我有我的主要功能如下所示:

def main(): 
    # The Dictionary 
    contacts = {} 
    # Provided Test Code 
    create_contact(contacts, "Katie", "Katz", "[email protected]", 
       25, "857-294-2758") 
    #Checks to see if item in dictionary exists 
    print("Creation of Katie Katz: {}".format(
    "Passed" if contains_contact(contacts, "Katie", "kaTz") else 
    "Failed")) 

我不确定我要去哪里错。似乎这些项目没有被添加到我的字典中。不确定为什么,也许我试图这一切都错了。

+4

你不降低情况下,在关键的元组的名称。您可以'打印(联系人)'来查看功能*是*添加信息。另外你的第二个方法应该是'在联系人中返回(first.lower(),last.lower())。 – jonrsharpe

+0

在create_contact中返回缺少 –

+0

@DineshPundkar它改变它的参数,返回一些东西,在Python中并不常见。 – jonrsharpe

回答

1

将项目添加到您的字典是工作正常,但您忘记在create_contact转换为小写的第一个和最后一个名字。但是,您确实在contains_contact中这样做了,这就是您的代码无法正常工作的原因。

def create_contact(contacts, first, last, email, age, phone): 
    """ 
    Creates a contact. 
    """ 

    contacts[(first.lower(), last.lower())] = [email, age, phone] 

此外,您contains_contact功能可以简化:

def contains_contact(contacts, first, last): 
    """ 
    Checks to see if the dictionary contains a contact. 
    """ 
    return (first.lower(), last.lower()) in contacts 
+1

你不需要'()'。它应该是这样的'联系[first.lower(),last.lower()] = [电子邮件,年龄,电话]' – sdikby

+1

@sdikby你是对的,但纠正这不会有助于回答问题。 OP公布的代码有很多不理想的地方,但这不是codereview –

+0

,这就是为什么我评论你的答案而不是他的答案。你给出了一个被接受的答案。值得花点额外的努力去除这些'()'并且添加类似“......在这种情况下它们是无用的......”。我个人喜欢“pythonic” - 正确的答案。 – sdikby

相关问题