python通讯录系统
---恢复内容开始---
对于一般的通讯录系统,主要有两个参数:姓名和电话号码,所以可以利用python编程里面的字典来进行建立之间的所属关系,
可以利用以下代码简单实现:
- print('|--- 欢迎进入通讯录程序 ---|')
- print('|--- 1:查询联系人资料 ---|')
- print('|--- 2:插入新的联系人 ---|')
- print('|--- 3:删除已有联系人 ---|')
- print('|--- 4:退出通讯录程序 ---|')
- contacts = dict()
- while 1:
- instr = int(input('\n请输入相关的指令代码:'))
- if instr == 1:
- name = input('请输入联系人姓名:')
- if name in contacts:
- print(name + ' : ' + contacts[name])
- else:
- print('您输入的姓名不再通讯录中!')
- if instr == 2:
- name = input('请输入联系人姓名:')
- if name in contacts:
- print('您输入的姓名在通讯录中已存在 -->> ', end='')
- print(name + ' : ' + contacts[name])
- if input('是否修改用户资料(YES/NO):') == 'YES':
- contacts[name] = input('请输入用户联系电话:')
- else:
- contacts[name] = input('请输入用户联系电话:')
- if instr == 3:
- name = input('请输入联系人姓名:')
- if name in contacts:
- del(contacts[name]) # 也可以使用dict.pop()
- else:
- print('您输入的联系人不存在。')
- if instr == 4:
- break
- print('|--- 感谢使用通讯录程序 ---|')
- 具体实现结果如下所示:

使用条件语句的代码非常直观明了,但是效率不高。因为程序会两次访问字典的键,一次判断是否存在(例如 if name in contacts),一次获得值(例如 print(name + ' : ' + contacts[name])),如果利用异常解决方案,我们可以简单避开每次需要使用 in 判断是否键存在字典中的操作。因为只要当键不存在字典中时,会触发 KeyError 异常,利用此特性我们可以修改代码如下:
- print('|--- 欢迎进入通讯录程序 ---|')
- print('|--- 1:查询联系人资料 ---|')
- print('|--- 2:插入新的联系人 ---|')
- print('|--- 3:删除已有联系人 ---|')
- print('|--- 4:退出通讯录程序 ---|')
- contacts = dict()
- while 1:
- instr = int(input('\n请输入相关的指令代码:'))
- if instr == 1:
- name = input('请输入联系人姓名:')
- try:
- print(name + ' : ' + contacts[name])
- except KeyError:
- print('您输入的姓名不再通讯录中!')
- if instr == 2:
- name = input('请输入联系人姓名:')
- try:
- contacts[name] # 有点“为赋新词强说愁”的感觉
- print('您输入的姓名在通讯录中已存在 -->> ', end='')
- print(name + ' : ' + contacts[name])
- if input('是否修改用户资料(YES/NO):') == 'YES':
- contacts[name] = input('请输入用户联系电话:')
- except KeyError:
- contacts[name] = input('请输入用户联系电话:')
- if instr == 3:
- name = input('请输入联系人姓名:')
- try:
- del(contacts[name]) # 也可以使用dict.pop()
- except KeyError:
- print('您输入的联系人不存在。')
- if instr == 4:
- break
- print('|--- 感谢使用通讯录程序 ---|')
python通讯录系统的更多相关文章
- Python云端系统开发入门——框架基础
Django框架基础 这是我学习北京理工大学嵩天老师的<Python云端系统开发入门>课程的笔记,在此我特别感谢老师的精彩讲解和对我的引导. 1.Django简介与安装 Django是一个 ...
- python 保障系统(一)
python 保障系统 from django.shortcuts import render,redirect,HttpResponse from app01 import models from ...
- python 报障系统(完)
python 报障系统(完) 一.报障系统原理: 原理: 1. 简单管理 2. 角色多管理(权限) a. 登录 session放置用户信息(检测是否已经登录) session放置权限信息(检测是否有权 ...
- C语言通讯录系统——C语言单向链表实现
实现的通讯录功能有:查看通讯录.添加联系人.删除联系人.查询联系人.保存并退出. 通过txt文件保存和读取通讯录数据. #include <stdio.h> #include <st ...
- Python云端系统开发入门 pycharm代码
html <!DOCTYPE html><html><head> <meta charset="UTF-8"> <title& ...
- 【转】Python之系统交互(subprocess)
[转]Python之系统交互(subprocess) 本节内容 os与commands模块 subprocess模块 subprocess.Popen类 总结 我们几乎可以在任何操作系统上通过命令行指 ...
- python获取系统内存占用信息的实例方法
psutil是一个跨平台库(http://code.google.com/p/psutil/),能够轻松实现获取系统运行的进程和系统利用率(包括CPU.内存.磁盘.网络等)信息.它主要应用于系统监控, ...
- 举例讲解Linux系统下Python调用系统Shell的方法
有时候难免需要直接调用Shell命令来完成一些比较简单的操作,比如mount一个文件系统之类的.那么我们使用Python如何调用Linux的Shell命令?下面来介绍几种常用的方法:1. os 模块 ...
- 一个简单的python选课系统
下面介绍一下自己写的python程序,主要是的知识点为sys.os.json.pickle的模块应用,python程序包的的使用,以及关于类的使用. 下面是我的程序目录: bin是存放一些执行文件co ...
随机推荐
- SQL Server中搜索特定的对象
一.注释中带某关键字的对象 主要用到 sys.tables .sys.columns .sys.procedures 系统对象表以及sys.extended_properties 扩展属性表 --查 ...
- SQLMap-----初识
前言 昨天收到一封来自客户网络中心发来的邮件,说是之前的一个项目存在sql注入漏洞,并附上了一张sqlmap检测结果的图片.记得第一次接触sql注入这些关于系统安全的问题还是从老师口中得知,当时也了解 ...
- 关于安装AndroidStudio中遇见的问题
安装AndroidStudio: 最近,准备了解下Android,就买了本<第一行代码Android:第二版>, 最开始就是安装AndroidStudio,刚开始以为安装的挺容易的,结果… ...
- 解决win7远程桌面连接时发生身份验证错误的方法
远程桌面连接,是我们比较常用的一个功能了,但有时突然不能用了,以下是我遇到该问题,并解决该问题的方法.连接时报的是“发生身份验证错误,要求的函数不受支持”,解决之后细想一下,该问题好像是在我在电脑上安 ...
- js之checkbox判断常用示例
checkbox常用示例可参考: 关于checkbox自动选中 checkbox选中并通过ajax传数组到后台接收 MP实战系列(十三)之批量修改操作(前后台异步交互) 本次说的是,还是关于智能门锁开 ...
- 关于SX1278、SX1276、SX1262的简单详解资料
通常的物联网解决方案和设备一直都非常昂贵,或在实施中不切合实际.理想的无线连接技术应该是低成本.高可靠性的,可进行长距离传输,且拥有超长的电池续航时间.像zigbee.Bluetooth和Wi-Fi这 ...
- 输入一批考生的的准考证号码,如果是 15 位,表示输入正确,否则重新输入。然后判断这个人的考试类别(号码中如果是以奇数结尾则考试类别为“A 类”,否则为“B 类”),最后输出此准考证的前 5 位和后 4 位,其他位用“*”来代替。说明:使用 StringBuffer 类的相关方法完成实验内容。
因为是一批考生,所以先创建一个字符数组存放一组准考证号. 此外这个程序涉及到包装类与基本数据类型的互相转换. string的substring方法,返回一个字符串是该字符串的子串.从第一个参数开始,第 ...
- 利用java代码生成keyStore
在前面的章节中介绍了如何利用KeyTool工具生成keyStore:传送门. 但是很多时候,在javaWeb项目中,比如给每个用户加上独特的数字签名,那么我们需要在创建用户的时候,给其生成独一无二的k ...
- 404 Note Found 队-Beta5
目录 组员情况 组员1(组长):胡绪佩 组员2:胡青元 组员3:庄卉 组员4:家灿 组员5:恺琳 组员6:翟丹丹 组员7:何家伟 组员8:政演 组员9:黄鸿杰 组员10:刘一好 组员11:何宇恒 展示 ...
- gattAttribute_t 含义 中文解释
1. gattAttribute_t 是一个结构体数据类型,里面存放了各种类型的数据. 现在 看看 TI 是怎么描述的,如下: /** * @brief GATT Attribute form ...