功能要求:

  • 查询联系人,输入姓名,可以查询当前通讯录里面的联系人信息,若联系人存在,则输出联系人信息,若不存在,则告知
  • 插入联系人,可以向通讯录中新建联系人,若联系人已经存在,则询问是否修改联系人信息,若不存在,则新建联系人
  • 删除联系人,可以删除联系人,若联系人不存在,则告知
  • 输入指令,退出通讯录

具体代码实现:

 #!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Time : 2018/3/26 10:01
# @Author : yang
# @File : Exercise.py
# @Software: PyCharm #通讯录
print('''|---欢迎进入通讯录---|
|---1、查询联系人信息---|
|---2、插入新的联系人---|
|---3、删除联系人信息---|
|---4、退出通讯录程序---|
''')
addressBook = {'小杨':12345678,'小张':12345679,'小赵':12345670}
while 1:
order_code = input('请输入指令代码:')
if order_code.isdigit() == False: #判断指令是否只有数字组成
print('您输入的指令代码格式错误,请按照提示重新输入!')
continue
item = int(order_code) #将输入指令转换为整型 if item == 4:
print('感谢使用通讯录!')
break #结束循环
#输入联系人姓名
name = input('请输入联系人姓名:')
if item == 1: #查询联系人信息
if name in addressBook:
print(name,':',addressBook[name])
continue #结束当前循环
else:
print('联系人不存在。')
if item == 2: #新建联系人
if name in addressBook:
print('你输入的联系人在通讯录中已经存在--->>',name,':',addressBook[name])
is_Edit = input('是否需要修改联系人的信息:(Y/N)') #判断是否需要修改当前联系人信息
if is_Edit == 'Y':
userphone = input('请输入联系人电话:')
addressBook[name] = userphone
print(addressBook)
continue
else:
continue
else:
userphone = input('请输入联系人电话:')
addressBook[name]=userphone
print('联系人添加成功!')
print(addressBook)
continue
if item == 3: #删除联系人
if name in addressBook:
del addressBook[name]
print('联系人删除成功!')
print(addressBook)
continue
else:
print('联系人不存在')

Python学习-字典练习:简单通讯录的更多相关文章

  1. Python学习第一天 -- 简单的属性、 语法学习

    1,哈哈哈,是时候来一波Python,其实没办法,最近在做后台的时候,需要用到Python来调试接口,下面是它的简单的语法,权当是记录. 2, #!/user/bin/python # coding= ...

  2. python学习之最简单的用户注册及登录验证小程序

    文章都是从我的个人博客上粘贴过来的哦,更多内容请点击 http://www.iwangzheng.com 正如很多同学所知道的,楼主开始学习python了,前进的道路曲曲折折,有荆棘也有陷阱,从最简单 ...

  3. Python学习 - 编写一个简单的web框架(二)

    在上一篇日志中已经讨论和实现了根据url执行相应应用,在我阅读了bottle.py官方文档后,按照bottle的设计重写一遍,主要借鉴大牛们的设计思想. 一个bottle.py的简单实例 来看看bot ...

  4. python学习-变量和简单类型(二)

    学习笔记中的源码:传送门 1.注释: 单行注释(#):多行注释("""或者''') 2.python标准数据类型:数字(numbers).字符串(string).列表(l ...

  5. python 学习 : 一个简单的秒表

      游戏说明:绿色数字(左边表示成功停止在整秒的次数,右边表示停止的总次数) 点击stop,如果小数点后为0,即你停止的时间是整秒数,右上方斜杠左边数字加一 把代码复制到这个网页code run he ...

  6. Python学习 - 编写一个简单的web框架(一)

    自己动手写一个web框架,因为我是菜鸟,对于python的一些内建函数不是清楚,所以在写这篇文章之前需要一些python和WSGI的预备知识,这是一系列文章.这一篇只实现了如何处理url. 参考这篇文 ...

  7. Python学习笔记2-flask-sqlalchemy 简单笔记

    flask-sqlalchemy 简单笔记 字数 阅读 评论 喜欢 flask-sqlalchemy SQLAlchemy已经成为了python世界里面orm的标准,flask是一个轻巧的web框架, ...

  8. Python学习--字典

    在Python中通过名字来引用值的数据结构称为映射(mapping).字典是Python中唯一内建(Python解释器本身支持,不需要import)的映射类型.字典中的值没有特殊的顺序,都存储在一个特 ...

  9. Python学习-------------------三级菜单简单版

    题目: 多级菜单         1.三级菜单         2.可依次选择进入的各子菜单         3.所需新知识点:列表.字典 ReadMe: 这个做循环,比较绕脑子 点开运行即可 Min ...

随机推荐

  1. go Rails 知识点,Concepts Series:url和parameter; 建立Rails App Templates;报错页面debug; counter_cache

    Rails Concepts Series: https://gorails.com/series/rails-concepts 基本都是免费的 一些细小的知识点,很有帮助. URL和paramete ...

  2. 从工程角度看C++观察者模式中的接口是否需要提供默认的实现

    在C++中,我们会经常用到观察者模式(回调模式,Delegate模式等,意思都一样),比如当Source中的某个参数发生了变化时,我们通过观察者模式进行回调通知,下面是一个例子: class Sour ...

  3. Day16 Django深入讲解

    参考博客: http://www.cnblogs.com/yuanchenqi/articles/6083427.html http://www.cnblogs.com/yuanchenqi/arti ...

  4. 【Raspberry Pi】 小问题汇总

    注: 此系列为自己之前所搭建网站内容. 目前入手树莓派2,将遇到的一些琐碎的问题记录在此. 1. 更改时区 查看日期命令:date 输入sudo dpkg-reconfigure tzdata后按提示 ...

  5. Algorithm3: 获得一个int数中二进制位为1 的个数

    获得一个int数中二进制位为1 的个数   int NumberOfOne(int n){                  int count = 0;                  unsig ...

  6. webapi返回不带引号的字符串,解决自动加双引号的问题

    返回类型改为HttpResponseMessage类型 [Route("api/TestControllers/test")] [HttpGet] public HttpRespo ...

  7. Poj 1651 Multiplication Puzzle(区间dp)

    Multiplication Puzzle Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10010   Accepted: ...

  8. Qt出现QObject::connect: Cannot queue arguments of type '******'的解决方法

    一般出现这种情况都是自定义的类型进行型号槽连接的时候出现的,使用 假设自定义的类型是MyClass 使用qRegisterMetaType<MyClass>("MyClass&q ...

  9. SpringAnnotation之配置AnnotationXML文件

    配置Annotation的环境:只需修改applicationContext.xml文件即可 1 2 3 4 5 6 7 8 9 10 11 <?xml version="1.0&qu ...

  10. linux安装mysql5.7.24

    一.卸载 mysql安装有三种方式,包括二进制包安装(Using Generic Binaries).RPM包安装.源码安装.一般是前两种比较多 卸载方法参考Linux->卸载Mysql方法总结 ...