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 ...
随机推荐
- PHP设计模式系列 - 观察者模式
观察者模式 观察者设计模式能够更便利创建和查看目标对象状态的对象,并且提供和核心对象非耦合的置顶功能性.观察者设计模式非常常用,在一般复杂的WEB系统中,观察者模式可以帮你减轻代码设计的压力,降低代码 ...
- PHP SPL神器实现堆排序
之前学习过内部排序的八大算法,也一一写过代码实现.其中堆排序的原理是 将一颗二叉树初始化为堆 依次将最后一个结点与堆顶结点交换.然后调整堆顶元素位置,重置堆. 将二叉树初始化为堆可以看做从最后一个非叶 ...
- 在windows下的虚拟环境中使用tk,要留神了
事情是这样的:有朋友在学习用matplotlib作图,遇到一些问题问我,我也没用过,就想先装一个试试.然后呢,我就随手创建了个虚拟环境.结果,涉及到matplotlib的第一行就报错了: Traceb ...
- 用pymysql代替MySQLdb
在我刚开始学python的时候,用的是python2.7,那时候连接mysql用的库是MySQLdb(很诡异的大小写,初学者经常因为记不住大小写导致“No module named xxx”).燃鹅, ...
- 【CF662C】Binary Table
题目 好吧,我连板子都不会了 有一个非常显然的做法就是\(O(2^nm)\)做法就是枚举每一行的状态,之后我们贪心去看看每一列是否需要翻转就好啦 显然这个做法非常垃圾过不去 首先我们发现每一列都不超过 ...
- DNS_PROBE_FINISHED_NXDOMAIN 问题解决
手动设置 (说明:如果您使用DNS有特殊设置,请保存设置后再进行操作) 1.打开[控制面板]→[网络连接]→打开[本地连接]→[属性]:2.双击[Internet 协议(TCP/IP)]→选择[自 ...
- Jsp实现在线作业提交系统
Jsp实现在线作业提交系统 作为 Computer Science 的学生,凌晨四点之前睡都应该感到羞耻. 项目托管地址:https://github.com/four-in-the-morning/ ...
- Linux无法识别Broadcom 802.11abgn无线网卡
折腾了好久,都无法解决 索性后来直接使用的usb外置网卡,勉强能用(使用极其不便) 最后使尽浑身解数,冲着萤火般的希望,好在没有放弃 正解就是下面这 完成重启即可 sudo cp /sys/fir ...
- Oracle 表单的创建
1.-- 连接 conn hu/aaa; -- 创建表空间 Create tablespace computer2005 nologging datafile 'd:/Oracle/product/1 ...
- kaggle _Titanic: Machine Learning from Disaster
A Data Science Framework: To Achieve 99% Accuracy https://www.kaggle.com/ldfreeman3/a-data-science-f ...