继上次利用列表相关知识做了简单的人机交互的小项目名字管理系统后,当学习到字典时,老师又让我们结合列表和字典的知识,结合一起做一个名片管理系统,这里分享给在学习Python的伙伴!

1、不使用函数

 1 print("*"*30)
2 print("\t名片管理系统")
3 print("1、增加一个名片")
4 print("2、删除一个名片")
5 print("3、修改一个名片")
6 print("4、查找一个名片")
7 print("5、显示所有名片")
8 print("6、退出系统")
9 print("*"*30)
10 mp = []
11 while True:
12 flag=0
13 mpdict = {}
14 num=input("请输入你的选择:")
15 if num=="1":
16 add_name=input("请输入要增加名片的姓名:")
17 add_phone=input("请输入要增加名片的电话:")
18 add_address=input("请输入要增加名片的地址:")
19 add_qq=input("请输入要增加名片的qq号码:")
20 mpdict["姓名"]=add_name
21 mpdict["电话"]=add_phone
22 mpdict["地址"]=add_address
23 mpdict["qq"]=add_qq
24 mp.append(mpdict)
25 print("名片增加成功!")
26 #print(mpdict)
27 #print(mp)
28 elif num=="2":
29 del_phone=input("请输入你要删除名片的电话:")
30 for x in range(len(mp)):
31 if mp[x]['电话']==del_phone:
32 mp.pop(x)
33 break
34 print("名片删除成功!")
35 elif num=="3":
36 change_phone=input("请输入你要修改名片的电话:")
37 for x in range(len(mp)):
38 if mp[x]['电话']==change_phone:
39 add_name=input("请输入要修改名片的姓名:")
40 add_phone=input("请输入要修改名片的电话:")
41 add_address=input("请输入要修改名片的地址:")
42 add_qq=input("请输入要修改名片的qq号码:")
43 mp[x]["姓名"]=add_name
44 mp[x]["电话"]=add_phone
45 mp[x]["地址"]=add_address
46 mp[x]["qq"]=add_qq
47 elif num=="4":
48 find_phone=input("请输入你要查找名片的电话:")
49 for x in range(len(mp)):
50 if mp[x]['电话']==find_phone:
51 flag=1
52 print("在")
53 if flag==0:
54 print("不在")
55 elif num=="5":
56 print("系统内所有的名片有:")
57 print("姓名\t电话\t地址\tqq")
58 for x in range(len(mp)):
59 print("%s\t%s\t%s\t%s"
60 %(mp[x]['姓名'],mp[x]['电话'],mp[x]['地址'],mp[x]['qq'],))
61 elif num=="6":
62 break
63 else :
64 print("error")

2、使用函数

  1 def w(count):
2 f=open("w.txt","w")
3 f.write(count)
4 f.close()
5
6 def r():
7 f=open("w.txt","r")
8 s=f.read()
9 f.close()
10 return s
11
12 def interface():
13 print("*"*30)
14 print("\t名片管理系统")
15 print("1、增加一个名片")
16 print("2、删除一个名片")
17 print("3、修改一个名片")
18 print("4、查找一个名片")
19 print("5、显示所有名片")
20 print("6、退出系统")
21 print("*"*30)
22
23 if r=='':
24 mp=[]
25 else:
26 mp=eval(r())
27
28 def add_name():
29 add_name=input("请输入要增加名片的姓名:")
30 add_phone=input("请输入要增加名片的电话:")
31 add_address=input("请输入要增加名片的地址:")
32 add_qq=input("请输入要增加名片的qq号码:")
33
34 mpdict={}
35 mpdict["姓名"]=add_name
36 mpdict["电话"]=add_phone
37 mpdict["地址"]=add_address
38 mpdict["qq"]=add_qq
39 mp.append(mpdict)
40 w(str(mp))
41 print("名片增加成功!")
42
43 def del_name():
44 del_phone=input("请输入你要删除名片的电话:")
45 for x in range(len(mp)):
46 if mp[x]['电话']==del_phone:
47 mp.pop(x)
48 break
49 w(str(mp))
50 print("名片删除成功!")
51
52 def change_name():
53 change_phone=input("请输入你要修改名片的电话:")
54 for x in range(len(mp)):
55 if mp[x]['电话']==change_phone:
56 add_name=input("请输入要修改名片的姓名:")
57 add_phone=input("请输入要修改名片的电话:")
58 add_address=input("请输入要修改名片的地址:")
59 add_qq=input("请输入要修改名片的qq号码:")
60 mp[x]["姓名"]=add_name
61 mp[x]["电话"]=add_phone
62 mp[x]["地址"]=add_address
63 mp[x]["qq"]=add_qq
64
65 def find_name():
66 find_phone=input("请输入你要查找名片的电话:")
67 for x in range(len(mp)):
68 if mp[x]['电话']==find_phone:
69 flag=1
70 print("在")
71
72
73 if flag==0:
74 print("不在")
75
76 def display_name():
77 print("系统内所有的名片有:")
78 print("姓名\t电话\t地址\tqq")
79 for x in range(len(mp)):
80 print("%s\t%s\t%s\t%s"
81 %(mp[x]['姓名'],mp[x]['电话'],mp[x]['地址'],mp[x]['qq'],))
82
83 def main():
84 interface()
85 while 1:
86 flag=0
87 num=input("请输入你的选择:")
88 if num == "1":
89 add_name()
90 elif num == "2":
91 del_name()
92 elif num == "3":
93 change_name()
94 elif num == "4":
95 find_name()
96 elif num == "5":
97 display_name()
98 elif num == "6":
99 break
100 else:
101 print("输入有误!")
102
103 main()

学习笔记之Python人机交互小项目二:名片管理系统的更多相关文章

  1. 学习笔记之Python人机交互小项目一:名字管理系统

    2020是一个不平凡的一年,但即使挫折不断,我们每学期的课程实训也没有受到影响,仍旧如期实施.与往年不同的是,今年的实训老师是学校邀请的公司在职人员来给我们实训.今年实训的内容是Python语言,下面 ...

  2. Java学习笔记三十:Java小项目之租车系统

    Java小项目之租车系统 一:项目背景介绍: 根据所学知识,编写一个控制台版的“呱呱租车系统” 功能: 1.展示所有可租车辆: 2.选择车型.租车量: 3.展示租车清单,包含:总金额.总载货量以及其车 ...

  3. Noah的学习笔记之Python篇:命令行解析

    Noah的学习笔记之Python篇: 1.装饰器 2.函数“可变长参数” 3.命令行解析 注:本文全原创,作者:Noah Zhang  (http://www.cnblogs.com/noahzn/) ...

  4. Noah的学习笔记之Python篇:函数“可变长参数”

    Noah的学习笔记之Python篇: 1.装饰器 2.函数“可变长参数” 3.命令行解析 注:本文全原创,作者:Noah Zhang  (http://www.cnblogs.com/noahzn/) ...

  5. Noah的学习笔记之Python篇:装饰器

    Noah的学习笔记之Python篇: 1.装饰器 2.函数“可变长参数” 3.命令行解析 注:本文全原创,作者:Noah Zhang  (http://www.cnblogs.com/noahzn/) ...

  6. Vue小项目二手书商城:(一)准备工作、组件和路由

    本项目基于vue2.5.2,与低版本部分不同之处会在(五)参考资料中提出 完整程序:https://github.com/M-M-Monica/bukesi 实现内容: 资源准备(mock数据) 组件 ...

  7. python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑

    python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑 许多人在安装Python第三方库的时候, 经常会为一个问题困扰:到底应该下载什么格式的文件?当我们点开下载页时, 一般 ...

  8. 【学习笔记】Python 3.6模拟输入并爬取百度前10页密切相关链接

    [学习笔记]Python 3.6模拟输入并爬取百度前10页密切相关链接 问题描述 通过模拟网页,实现百度搜索关键词,然后获得网页中链接的文本,与准备的文本进行比较,如果有相似之处则代表相关链接. me ...

  9. 阅读《LEARNING HARD C#学习笔记》知识点总结与摘要二

    今天继续分享我的阅读<LEARNING HARD C#学习笔记>知识点总结与摘要二,仍然是基础知识,但可温故而知新. 七.面向对象 三大基本特性: 封装:把客观事物封装成类,并隐藏类的内部 ...

随机推荐

  1. PyQt(Python+Qt)学习随笔:QListWidget的addItems增加多项的方法

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QListWidget支持一次增加多个项,对应的方法就是addItems方法,对应语法如下: add ...

  2. 【Vue】 axios同步执行多个请求

    问题 项目中遇到一个需求,在填写商品的时候,选择商品分类后,加载出商品分类的扩展属性. 这个扩展属性有可能是自定义的数据字典里的单选/多远. 要用第一个axios查询扩展属性,第二个axios 从第一 ...

  3. PHP 的$server变量

    PHP中$_SERVER["QUERY_STRING"]函数   详解PHP中$_SERVER函数的QUERY_STRING和 $_SERVER存储当前服务器信息,其中有几个值 如 ...

  4. 关于Lombok框架子类继承时EqualsAndHashCode注解的callSuper取值的思考

    先看例子(原始用例来源于这篇文章): TV类 @Getter @Setter //@EqualsAndHashCode @AllArgsConstructor @NoArgsConstructor p ...

  5. .NET 面试题汇总(带答案)

    1.维护数据库的完整性.一致性.你喜欢用触发器还是自写业务逻辑?为什么? 答:尽可能用约束(包括CHECK.主键.唯一键.外键.非空字段)实现,这种方式的效率最好:其次用触发器,这种方式可以保证无论何 ...

  6. WPF源代码分析系列一:剖析WPF模板机制的内部实现(一)

    众所周知,在WPF框架中,Visual类是可以提供渲染(render)支持的最顶层的类,所有可视化元素(包括UIElement.FrameworkElment.Control等)都直接或间接继承自Vi ...

  7. TMOOC-1709-小明复仇

    题目描述 小明所在的世界上一共有n个城市,城市间有m条双向道路.小明现在在城市1,他想到位于城市n的小韩隆家询问他为什么没有将自己的五三复原完成.由于小韩隆手下有许多小弟,小明担心自己可能再也回不来, ...

  8. WPS PDF转Word工具

    WPS PDF转Word工具链接:https://pan.baidu.com/s/1Ijh5MSBWZtsXsm05_6yYvw 提取码:gufy  下载运行后会解压到"D:\Program ...

  9. RocketMQ(六):nameserver队列存储定位解析

    在rocketmq中,nameserver充当了一个配置管理者的角色,看起来好似不太重要.然而它是一个不或缺的角色,没有了它的存在,各个broker就是一盘散沙,各自为战. 所以,实际上,在rocke ...

  10. gnuplot名词缩写

    http://blog.163.com/yucheng_xiao/blog/static/7660019220141017114630822/ with 缩写成 w  lt 是 linetype 的缩 ...