我已经搜索了类似的任务,但没有找到全面的内容。我的任务是制作具有以下要求的电话簿。




-添加姓名号码-添加姓名和号码

-lookup名称-打印名称的编号

-alias name newname –在现有名称中添加“昵称”

-更改名称编号-将编号更改为现有的名称

-save filename –将电话簿保存到文件中

-load filename –读取文件,然后将电话簿扔到内存中(浪费了?)之后,只有文件中的电话簿才应
存在。


到目前为止,这是我的代码:

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"


因此,我需要有关如何实现别名和更改突击队的帮助。我认为我可以弄清楚自己的保存和加载,但是对这些的任何帮助也将适用。

谢谢

最佳答案

您可以将电话簿重新格式化为嵌套词典

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"

关于python - Python电话簿,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28995419/

10-09 17:54