电话簿的Python分配

时间:2015-03-07 00:50:07

标签: python dictionary

本周的实验是基于wikibook"非程序员教程Python和#34;的第53,54页上的示例。作者:Josh Cogliati(2005),(见http://en.wikibooks.org/wiki/Non-Programmer%27s_Tutorial_for_Python_3/Dictionaries)。

在他的例子中,Cogliati有打印,添加,删除和查找电话号码的选项。更改代码,以便,而不是字典中的值是一个简单的电话号码,它现在是一个包含三个值的列表:

  • 电话号码
  • 电子邮件
  • 地址网页

密钥应该只是人名。相应地调整示例中使用的菜单,例如' 2。添加电话号码'现在应该阅读' 2。添加条目'如果选择,则应询问用户4项信息(姓名,电话,电子邮件,网络)。的方法,另外: 添加一个选项(例如菜单中的数字6)以更改/编辑现有条目'。 添加选项:

  • 仅打印电话号码列表
  • 仅打印电子邮件地址列表
  • 仅打印网址列表
  • 一起打印以上所有内容

这是我们给出的任务,我理解链接中给出的内容并添加了一些内容,不确定如何在存储后添加电子邮件和网页信息的调用

1 个答案:

答案 0 :(得分:2)

虽然我同意你的回答中的评论,但我仍会尽力给你一些指导。

原始代码:

def print_menu():
    print('1. Print Phone Numbers')
    print('2. Add a Phone Number')
    print('3. Remove a Phone Number')
    print('4. Lookup a Phone Number')
    print('5. Quit')
    print()

numbers = {}
menu_choice = 0
print_menu()
while menu_choice != 5:
    menu_choice = int(input("Type in a number (1-5): "))
    if menu_choice == 1:
        print("Telephone Numbers:")
        for x in numbers.keys():
            print("Name: ", x, "\tNumber:", numbers[x])
        print()
    elif menu_choice == 2:
        print("Add Name and Number")
        name = input("Name: ")
        phone = input("Number: ")
        numbers[name] = phone
    elif menu_choice == 3:
        print("Remove Name and Number")
        name = input("Name: ")
        if name in numbers:
            del numbers[name]
        else:
            print(name, "was not found")
    elif menu_choice == 4:
        print("Lookup Number")
        name = input("Name: ")
        if name in numbers:
            print("The number is", numbers[name])
        else:
            print(name, "was not found")
    elif menu_choice != 5:
        print_menu()

请注意numbers等于{} - 这表示它是" Dictionary",它存储键/值对。要添加到字典(或"字典"),您可以手动修改它:numbers = {'David': 18003574689}。因此,要访问David的电话号码,您需要输入numbers['David']

添加到其中的另一种方法是实例化它(已经通过numbers = {}为您完成),然后通过快捷方式{{1} 添加信息}。所以在这种情况下,简写可以是dictname['key'] = value

现在,要在混合中添加numbers['Laura'] = 9173162546,您可以使用list(这是python中的列表),但您可能更适合将另一个dict嵌套到当前的dict中。例如,您现在可以[]而不是numbers = {'David': 18003574689}

要访问这些新的嵌套dicts,你可以做的是简写numbers = {'David': {'phone number': 18003574689, 'e-mail': 'david2015@gmail.com', 'address web page': 'http://dave.com'}, 'Laura': [...etc...]},它将返回他的#。然后,您可以再次执行这个确切的短代码numbers['David']['phone number']& numbers['David']['e-mail']。这三个将访问相关数据。

由于我认为这对新手来说是最艰难的部分,所以我会停在这里,因为其余部分应该很容易。您所要做的就是在正确的numbers['David']['address web page']条件下创建新输入。通过if赋值运算符(例如=)将捕获的输入数据分配到适当的变量中,然后逻辑地使用其余信息。我希望这会有所帮助。