建立通讯录的程序(用字典)

来源:互联网 发布:淘宝商家佣金怎么算 编辑:程序博客网 时间:2024/05/17 03:41
print ("""        |---欢迎进入通讯录程序---|        |---1:查询联系人资料---|        |---2:插入新的联系人---|        |---3:删除已有联系人---|        |---4:退出通讯录程序---|""")dict = {}while True:    number=int(input("请输入相关的指令代码:"))    if number==2:        name=input("请输入联系人姓名:")        if name not in dict.keys():            tel = input("请输入用户联系电话:")            print ("\r")            dict[name] = tel        else:            print ("您输入的姓名在通讯录中已存在---> %s:%s" %(name,dict[name]))            flag=input("是否修改用户资料(Yes/No):")            if flag=="Yes":                tel = input("请输入用户联系电话:")                print("\r")                dict[name]=tel    if number==1:        name=input("请输入联系人姓名:")        print ("%s:%s" %(name,dict[name]))        print("\r")    if number==3:        name=input("请输入联系人姓名:")        if name in dict.keys():            del(dict[name])        else:            print("您输入的联系人不存在。")    if number==4:        breakprint("|---感谢使用通讯录程序---|")

**我们发现使用条件语句的代码非常直观明了,但是效率不高。因为程序会两次访问字典的key,一次判断是否存在(if name in dict.keys()),一次获取值(print (“%s:%s” %(name,dict[name])))。
如果利用异常解决方案,我们可以简单避开每次需要使用in判断key存在字典的操作。因为只要key不存在字典中时,会出发KeyError异常,利用此特征我们可以修改代码。**

# -*- coding: utf-8 -*-print ("""        |---欢迎进入通讯录程序---|        |---1:查询联系人资料---|        |---2:插入新的联系人---|        |---3:删除已有联系人---|        |---4:退出通讯录程序---|        """)dict = {}while True:    try:        number=int(input("请输入相关的指令代码:"))        if number==1:            name=input("请输入联系人姓名:")            try:                print ("%s:%s" %(name,dict[name]))                print("\r")            except KeyError:                print("您输入的姓名不再通讯录中!")        if number==2:            name=input("请输入联系人姓名:")            try:                dict[name]                print("您输入的姓名在通讯录中已存在---> %s:%s" % (name, dict[name]))                flag = input("是否修改用户资料(Yes/No):")                if flag in ["Yes","YES","yes"]:                    tel = input("请输入用户联系电话:")                    print("\r")                    dict[name] = tel            except KeyError:                dict[name]=input("请输入用户联系电话:")        if number==3:            name=input("请输入联系人姓名:")            try:                del(dict[name])   #也可以使用dict.pop            except KeyError:                print("|---您输入的联系人不存在---|")        if number==4:            break    except ValueError as reason:        print("请输入指令代码1-4,错误原因为:"+str(reason))print("|---感谢使用通讯录程序---|")

参考:
http://bbs.fishc.com/forum.php?mod=viewthread&tid=48291&extra=page%3D1%26filter%3Dtypeid%26typeid%3D398

0 0
原创粉丝点击