建立通讯录的程序(用字典)
来源:互联网 发布:淘宝商家佣金怎么算 编辑:程序博客网 时间: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
- 建立通讯录的程序(用字典)
- OC 用字典数组等方式实现中等难度的通讯录的实现
- 用字节流复制图片的java程序
- 简单的通讯录程序
- C# 趣味小程序(2)——用字母表示的26进制数
- 通讯录程序(链表版)
- 用字典顺序得到所有的排列
- 一个简单的通讯录程序
- 基于sqlite3实现的简单通讯录程序(控制台)
- 基于sqlite3实现的简单通讯录程序(控制台)
- C++建立通讯录XML文件(包含XML文件的各种操作)
- 用字典创建一个平台的用户信息(包含用户名和密码)管理系统
- 通讯录程序
- 建立同学通讯录
- 省市区用字典实现
- 一个汇编写的通讯录程序
- 一个简单的python程序实例(通讯录)
- 基于Linux C 单链表的通讯录程序
- 写给2017年
- 【求助】微信公众平台“查看历史消息”页面如何做到按日全部显示出来呢?请高手赐教!谢谢
- python按行读取文件 去掉换行符"\n" (查眼力,比较文档的不同)
- 有关使用Provisioning Profile遇到的问题
- 线段树实现
- 建立通讯录的程序(用字典)
- 为什么一个简单的网页程序,打开后一直在刷新???
- 刚学Android求大神解答下 ListView分页加载的问题
- Celery源码分析(四)--------Blueprint各组件start流程
- vfork和exit简单介绍
- Hello World 2017
- 54. Spiral Matrix
- 二叉树操作 C++实现
- 初试laravel-搭建环境篇