我搜索过类似的任务,但我没有找到任何全面的。我被赋予了制作符合以下要求的电话簿的任务。
-add 名称编号 - 添加姓名和号码
-lookup name - 打印名称
的数字-alias name newname - 添加"昵称"到现有名称
-change 名称编号 - 将数字更改为alredy现有名称
-save filename - 将电话簿保存到文件
-load filename - 读取文件并丢弃内存中的电话簿(wat?)之后只有文件中的电话簿应该 存在。
到目前为止,这是我的代码:
prompt = ('command (add/lookup/alias/change/save/load/quit/)')
phonebook = {}
run = True
while run:
command = raw_input(prompt)
if command == 'quit':
run = False
elif command == 'add':
name = raw_input('name?')
number = raw_input ('number?')
phonebook[name]=number
elif command == ('lookup'):
name=raw_input ("Name?:")
if name in phonebook:
print name, phonebook[name]
else:
print "Does not exist"
所以我需要有关如何实现别名和更改突击队的帮助。保存和负载,我想我可以弄明白自己,但对这些人的任何帮助都会受到影响。
由于
答案 0 :(得分:2)
您可以将电话簿重新格式化为嵌套词典
phonebook = {
"Steven": {"Alias": "Steve", "Number": "123-456-7890"},
"Michael": {"Alias": "Mike", "Number": "987-654-3210"}
}
然后你可以看起来像
>>> phonebook['Steven']['Number']
'123-456-7890'
然后你的最后两个功能可能是
elif command == ('alias'):
name = raw_input ("Name?:")
nickname = raw_input ("Alias?:")
if name in phonebook:
phonebook[name]['Alias'] = nickname
else:
print "Does not exist"
elif command == ('change number'):
name = raw_input ("Name?:")
number = raw_input ("Number?:")
if name in phonebook:
phonebook[name]['Number'] = number
else:
print "Does not exist"
修改强>
elif command == 'add':
name = raw_input('name?')
number = raw_input ('number?')
phonebook[name] = {'Alias': '', 'Number': number}
elif command == ('lookup'):
name = raw_input ("Name?:")
if name in phonebook:
print name, phonebook[name]
else:
print "Does not exist"