本周的实验是基于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)以更改/编辑现有条目'。 添加选项:
这是我们给出的任务,我理解链接中给出的内容并添加了一些内容,不确定如何在存储后添加电子邮件和网页信息的调用
答案 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
赋值运算符(例如=
)将捕获的输入数据分配到适当的变量中,然后逻辑地使用其余信息。我希望这会有所帮助。