尝试使用给定列表更新年龄值

时间:2019-02-22 19:11:35

标签: python

我正在尝试更新给定列表/词典中的年龄,但是我的名字和姓氏参数出现关键错误,我们将不胜感激。

TotalFlow 1500.0000

它应该能够通过这些测试

def create_contacts_collection():
    contacts = {}
    return contacts

def add_contact(contacts, first_name, last_name, email, phone_number, age):
    contacts[first_name, last_name] = [email, phone_number, age]

def has_contact(contacts, first_name, last_name):
    if (first_name, last_name) in contacts:
        return True
    else:
        return False

def get_contact_age(contacts, first_name, last_name):
    if has_contact(contacts, first_name, last_name):
        return contacts[(first_name, last_name)][2]

def update_contact_age(contacts, first_name, last_name, age):
    contacts[(first_name, last_name)][2] = age
    if update_contact_age == get_contact_age:
        return False
    else:
        return True

这与test_get_contact_email,test_get_contact_phone_number的概念相同。

def test_add_contact():
    contacts = create_contacts_collection()
    len_before_adding = len(contacts)
    add_contact(contacts, 'Ben', 'Jerryson', 'bjer@ice.crm', '555-267-8301',
    31)
    len_after_adding = len(contacts)

    show_results("add_contact() test 1",
                len_before_adding == 0 and len_after_adding > 0)

def test_has_contact():
    contacts = create_contacts_collection()
    add_contact(contacts, 'Ben', 'Jerryson', 'bjer@ice.crm', '555-267-8301', 
    31)
    show_results("has_contact() test 1",
                 has_contact(contacts, 'Ben', 'Jerryson') == True)
    show_results("has_contact() test 2",
                 has_contact(contacts, 'Jen', 'Berryson') === False)

def test_get_contact_age():
    contacts = create_contacts_collection()
    add_contact(contacts, 'Ben', 'Jerryson', 'bjer@ice.crm', '55-267-8301', 
    31)
    show_results("get_contact_age() test 1",
                 get_contact_age(contacts, 'Ben', 'Jerryson') == 31)
    show_results("get_contact_age() test 2",
                 get_contact_age(contacts, 'Jen', 'Berryson') == None)

然后使用相同的概念来表示test_update_contact_email和test_update_contact_phone_number。

它能够通过所有其他测试,除了两个 def test_update_contacts_age测试

1 个答案:

答案 0 :(得分:0)

尝试一下,一切正常

    def create_contacts_collection():
      contacts = {}
      return contacts

    def add_contact(contacts, first_name, last_name, email, phone_number, age):
      contacts[first_name, last_name] = [email, phone_number, age]

    def has_contact(contacts, first_name, last_name):
      if (first_name, last_name) in contacts:
              return True
      else:
              return False

    def get_contact_age(contacts, first_name, last_name):
      if has_contact(contacts, first_name, last_name):
              return contacts[(first_name, last_name)][2]

    def update_contact_age(contacts, first_name, last_name, age):
      contacts[(first_name, last_name)][2] = age
      if update_contact_age == get_contact_age:
              return False
      else:
              return True
    w = create_contacts_collection()
    add_contact(w,"abcd","efgh","a@b.com","0123","21")
    print(has_contact(w,"abcd","efgh"))
    print(get_contact_age(w,"abcd","efgh"))
    update_contact_age(w,"abcd","efgh",80)
    print(has_contact(w,"abcd","efgh"))

    # OUTPUT
    True
    21
    True

如果您尝试更新联系人中的姓名或姓氏,则会收到错误消息,因为您已基于该字段存储了联系人,并且在更新时尝试查找不存在的新联系人。否则,如果您要更新联系年龄,则可以正常工作。