首先想到的是利用字典创建一个人的信息,然后将各种字典组合为一个列表,但是在添加,删除的时候不是很方便,

于是想到利用类来创建一个人的对象,将对象传入字典中,但是,那字典有什么用吗?

Q&A

1.通讯录应该是什么数据类型?单个个人是什么数据类型?

首先决定将通讯录设置为集合,单个人的信息设置为字典。但是写过后发现集合中不能传入字典,于是将通讯录改变为列表

3.如何将一个字典中所有的"name"键取出?

用循环加字典索引来对应于名字

4.在利用函数修改集合时是否需要声明contacts是全局变量?

不需要

>>> m=set()
>>> def add(x):
    m.add(x)

>>> add(5)
>>> m
{5}
>>> add('dawda')
>>> m
{'dawda', 5}
>>>

事实证明并不用

最终程序

#test4.py
def add():#添加通讯人name,tel,email,add=input('请输入您要添加的通讯人信息,以空格分开\n').split()contacts.append({'姓名':name,'电话':tel,'电子邮箱':email,'地址':add})
def lookfor(name):#索引到通讯人所在的字典for d in contacts:if d['name']==name:return delse: print('查无此人')
def delect():#删除通讯人name=input('请输入要删除人的姓名\n')contacts.remove(lookfor(name))
def inquire():#查询某个人的信息name=input('请输入需要查询的人的姓名\n')print(lookfor(name))
def outputall():#输出所有人的信息for d in contacts:print(d)
contacts=[]
while(1):print('请输入您所需要的功能\n1:添加通讯人 2:删除通讯人 3:查询通讯人 4:输出所有人信息 5:退出\n')cmd=input()if cmd=='1': add()elif cmd=='2': delect()elif cmd=='3': inquire()elif cmd=='4': outputall()elif cmd=='5': breakelse :print('输入错误\n')

以字典为基础建立一个通讯录,向字典中添加和删除通讯人(名字、电话、email、工作单位等),查询某个人的信息,然后输出通讯录中所有人的信息。相关推荐

  1. Python:用字典建立一个通讯录,向字典中添加和删除通讯人信息,查询某个人的信息,然后输出通讯录中所有人的信息。

    用字典建立一个通讯录,向字典中添加和删除通讯人(名字.电话.邮箱.工作单位等),查询某个人的信息,然后输出通讯录中所有人的信息. 采用列表里套字典的方法,比较简单 contacts = []def a ...

  2. 用字典建立一个通讯录,向字典中添加和删除通讯人(名字、电话、邮箱、工作单位等),查询某个人的信息,然后输出通讯录中所有人的信息。

    首先请见主函数 import test_4_toolwhile True:# 显示功能菜单test_4_tool.show_menu()action_str = input("请选择希望执行 ...

  3. 实例:建立一个触发器,当scott.emp被删除一条记录时,把被删除记录写到删除日志里面去

    实例:建立一个触发器,当scott.emp被删除一条记录时,把被删除记录写到删除日志里面去. --创建一个存放删除记录的表,此表此时为空表 CREATE TABLE del_emp AS SELECT ...

  4. python 把一个字典赋值给一个空的字典,或者是列表赋值给一个空的列表显示黄色警告

    如下图看到的显示一个黄色的警告,但是不影响打印结果 或者是list 同样显示警告 最后测试发现不需要重新自定义一个空的字典或者空的列表,直接赋值就行如下

  5. php脚注信息怎么删除,如何在Word2010中添加、删除脚注、尾注

    脚注和尾注共同的作用是对文字的补充说明,在语文课本中,我们经常会看到页面底部或是文章末尾会有相应的脚注或尾注,在Word中我们可以很轻松的添加这些脚注.尾注. 添加脚注.尾注 1.将光标定位到需要插入 ...

  6. python字典操作添加_Python字典常见操作实例小结【定义、添加、删除、遍历】

    本文实例总结了python字典常见操作.分享给大家供大家参考,具体如下: 简单的字典: 字典就是键值对key-value组合. #字典 键值对组合 alien_0 ={'color':'green', ...

  7. 建立一个普通方法无法打开查看和删除的文件夹

    建立 f:>md xx..\ 打开 win+r,f:\xx..\ 删除 rd xx..\

  8. Simplicity Studio V5 建立一个空工程后如何添加外设驱动

    默认生成工程自带的驱动就这么多. 这些都可以根据自己需求添加.下面我们添加i2c,IADC,LDMA三个. 这里多出了三个文件:em_i2c.c.em_iadc.c.em_ldma.c,这就是自己添加 ...

  9. 如何建立一个完整的游戏AI

    http://blog.friskit.me/2012/04/how-to-build-a-perfect-game-ai/ 人工智能(Artificial Intelligence)在游戏中使用已经 ...

最新文章

  1. 中科院调查组成立!杨辉发表声明,并对举报信作出详细回应
  2. java实现类似于while(cin n)的操作
  3. 【PAT笔记】C++标准模板库STL(一)——vector的用法和示例
  4. zigbee是什么,为什么说它最适合智能家居设备
  5. python 生成 和 加载 requirements.txt
  6. ubuntu关闭服务需要身份验证
  7. Tableau可视化学习笔记:day13-14
  8. 龚胤全云栖大会_2017云栖大会北京峰会
  9. Android ActivityManager
  10. 分享Win10虚拟机VMware安装黑苹果MacOS Sierra图文教程
  11. 共轭先验分布及其应用
  12. FIR数字滤波器在MATLAB中的实现
  13. 7.11 不区分大小写的匹配
  14. BJ模拟 Different Trips【树上后缀数组】
  15. Python更新失败:SSL错误——Conda/Python
  16. 过程裁剪的理念和表现形式
  17. 基本数据类型引用数据类型
  18. Java中比较常见的主流框架及相关技术合集
  19. Codeforces Round #742 (Div. 2) C. Carrying Conundrum
  20. 应届毕业生北京租房经验

热门文章

  1. GreenPlum 外部表external table 实战
  2. 3b1b视频《奥数级别的数数问题》笔记
  3. 混沌神经网络(Chaos Neural Network)
  4. 如何引流,如何维护社群?
  5. 二开苹果CMS视频网站模板源码下载+支持双端/UI黑金高端
  6. 形似纸鹤的纸飞机其实是一台真飞机!
  7. java 画数学函数图
  8. 夜游项目如何讲好文化故事
  9. systemctl 设置 frpc 开机自启
  10. 江苏男子非洲持枪扬言抢银行 警方回国接受处理,小品中骗子说河南话 河南籍律师起诉地域歧视