importre#全局变量card_list:列表嵌套字典,有默认五条原始“死”数据

card_list =[

{'name': '张三', 'phone': '12345678901', 'QQ': '10000001', 'email': 'zhangsan@qq.com', },

{'name': '张四', 'phone': '12345678902', 'QQ': '10000002', 'email': 'zhangsi@qq.com', },

{'name': '李四', 'phone': '12345678903', 'QQ': '10000003', 'email': 'lisi@qq.com', },

{'name': '李五', 'phone': '12345678904', 'QQ': '10000004', 'email': 'liwu@qq.com', },

{'name': '王五', 'phone': '12345678905', 'QQ': '10000005', 'email': 'wangwu@qq.com', },

]#1、显示菜单函数

defshow_menu():"""当前函数为显示菜单的函数

:return:"""

print("*" * 50)print("欢迎使用【名片管理系统】 v1.0")print("")print("1. 新建名片")print("2. 显示全部")print("3. 查询名片")print("")print("0. 退出系统")print("*" * 50)#2、新建名片函数

defcreate_card():"""这里是往card_list中插入数据

:return:"""

print("调用cardTool中的:新建名片")

name= input("请输入姓名:")

phone= input("请输入电话号码:")

qq= input("请输入QQ:")

email= input("请输入email:")

temp_dict={'name': name,'phone': phone,'QQ': qq,'email': email

}

card_list.append(temp_dict)print(card_list)pass #pass是占位符,起到完善语法结构的作用,不输出任何内容,但也占用资源

#3、显示全部名片函数

defshow_all_card():"""这里展示card_list中的所有数据

:return:"""

if len(card_list) ==0:print("当前不存在数据,请先添加数据")return

print("-" * 50)print("姓名".ljust(5), "电话".ljust(12), "QQ".ljust(12), "email", sep="\t\t")for item incard_list:#todo:排版不好兼容性较差

print(item.get('name').ljust(5), item.get('phone').ljust(12),

item.get('QQ').ljust(12), item.get('email'), sep="\t\t")print("-" * 50)pass #pass是占位符,起到完善语法结构的作用,不输出任何内容

#4、查询名片函数

defsearch_card():"""这里支持简单的姓名模糊匹配查询的操作

:return:"""find_name= input("请输入要查询的姓名:")#定义正则表达式的匹配模式

pattern = '.*' + find_name + '.*'temp_list=[]for item incard_list:#使用re,需要先导入re包:import re

#这里根据正则表达式pattern,去匹配用户查询的姓名

obj = re.findall(pattern, item.get('name'))#注意:返回的obj的数据类型是字典,而temp_list定义的是列表

#在将obj插入到temp_list时,应用append方法,而不能用extend方法

if len(obj) >0:

temp_list.append(item)if temp_list.__len__() ==0:print('抱歉,未查询到相关数据,')else:print("-" * 50)print("姓名".ljust(5), "电话".ljust(12), "QQ".ljust(12), "email", sep="\t\t")for temp_item intemp_list:print(temp_item.get('name').ljust(5), temp_item.get('phone').ljust(12),

temp_item.get('QQ').ljust(12), temp_item.get('email'), sep="\t\t")print("-" * 50)#当查询结果只有一条时,调用处理名片函数deal_card()

if temp_list.__len__() == 1:

deal_card(temp_list[0])pass #pass是占位符,起到完善语法结构的作用,不输出任何内容

#5、处理名片函数,传入的temp_list,是需要修改的数据

defdeal_card(temp_list):"""这里做简单的修改和删除名片的操作

:return:"""

whileTrue:

op= input("[1.修改 2.删除 3.返回上一级] 请输入要执行的操作序号:")if op not in ["1", "2", "3"]:print("非法序号,请重新输入!")else:if op == '1':print("修改【" + temp_list.get('name') + '】中:')

temp_list['name'] = input_diy(temp_list.get('name'), "请输入修改后的姓名[不修改直接回车]:")

temp_list['phone'] = input_diy(temp_list.get('phone'), "请输入修改后的电话[不修改直接回车]:")

temp_list['QQ'] = input_diy(temp_list.get('QQ'), "请输入修改后的QQ[不修改直接回车]:")

temp_list['email'] = input_diy(temp_list.get('email'), "请输入修改后的email[不修改直接回车]:")if op == '2':print("删除【"+temp_list.get('name')+'】成功!')

card_list.remove(temp_list)#这里删除的是列表card_list中的引用

print(temp_list)break

if op == '3':break

#自定义input功能,default_value是默认值,msg是提示信息,提示信息是不同的

definput_diy(default_value, msg):

modify_value=input(msg)#当用户直接输入回车时,modify_value的长度为0,这时应返回默认值default_value

if len(modify_value) >0:returnmodify_valueelse:return default_value

python名片系统_初识python-名片管理系统v1.0相关推荐

  1. python视频点播系统_精通Python(微课视频版)/Python开发视频点播大系

    目录 第1篇 基础知识 第1章 Python概述 1.1 认识Python 1.1.1 Python的历史 1.1.2 Python的特点 1.1.3 Python的应用 1.2 搭建Python开发 ...

  2. 用python画竹子_初识Python

    一:编程语言的分类 (1)机器语言 机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合. (2)汇编语言 汇编语言采用的是英文缩写,标识符更容易识别和记忆,它同样需要编程者将每一步 ...

  3. python学生名片系统_基于python的学生信息管理系统!听说好多人的作业都是这个...

    完整代码 import pymysqlindex=''' +---------------------+ 首页 欢迎来到学生信息管理系统 1.登陆 2.注册 3.quit(按任意键退出) +----- ...

  4. python商城系统_基于python的海鲜商城系统

    20006 基于python的海鲜商城系统 运行视频.代码等: 链接:https://pan.baidu.com/s/1tw4Qvtcuwt7ys36M7HvLSg 提取码:1589 复制这段内容后打 ...

  5. python程序保存_初识python 文件读取 保存

    上一章最后一题的答案: infors.sort(key=lambda x:x['age']) print(infors) --->[{'name': 'laowang', 'age': 23}, ...

  6. python新闻系统_干货 | Python 实现新闻系统内容的增删改查功能

    点击上方"程序人生",选择"置顶公众号" 第一时间关注程序猿(媛)身边的故事 作者 程序人生 x 张涛 联合发布 主题 <Python追梦人> 前言 ...

  7. python序列符号_初识Python(4)__Python序列

    序列 序列包含:字符串,列表和元组 序列基本操作符 索引:seq[ind] 获得下标为ind 的元素 分片( [], [:], [::] ):seq[ind1:ind2] 获得下标从ind1 到ind ...

  8. 三国演义python分析系统_用python分析四大名著之三国演义

    点击上方"程序人生",选择"置顶公众号" 第一时间关注程序猿(媛)身边的故事 项目起因及意义 起初在浏览知乎时看见一篇文章觉得很有意思(用 Python 分析& ...

  9. 初识python教学反思_初识Python

    引子 计算机编程语言如同我们的自然语言一样,有其一套规范的语法,我们学习编程语言不过是学习它的那一套规则罢了. 语言的发展史 机器语言 --> 汇编语言 --> C语言(写程序时需要操作内 ...

  10. python个人总结_初识Python

    Program01 基本的输出 作为一种语言的学习,他的仪式感很重要 print("Hello World!") 这就是python3里面的 Hello World! 打印输出 P ...

最新文章

  1. 高逼格的画图:VIM原来可以这样玩
  2. 负载均衡(Load Balancing)学习笔记(二)
  3. 程序员面试题精选100题(40)-扑克牌的顺子[算法]
  4. 被问懵了,BeanFactory和FactoryBean接口的区别到底是什么?
  5. Excel只能输入不能修改
  6. vue-count-to插件使用方法
  7. Simple:Press
  8. VS里面关于.cpp文件与.cu文件混合编译问题---不要在.cpp文件声明核函数(__device__()和global__())
  9. UVALive 7274 Canvas Painting (优先队列)
  10. JVM初识之常用参数配置
  11. 会考计算机辅助制图,信息技术会考基础知识
  12. 信息安全工程师考试大纲(2016)
  13. 《罪恶街区/Vice Street》手游用户协议
  14. 有限自动机可解析数据例题分析
  15. 高盛:人工智能报告中文版
  16. 新一代云数据库的引领者---AWS
  17. 简单定义一个RMB类
  18. CSS截字符串,表格英文强制换行
  19. grunt教程--初涉grunt
  20. Python项目打包部署Linux服务上

热门文章

  1. iView 日期时间选择器设置开始时间至结束时间限制
  2. C语言中的除法运算符( /)
  3. IOS下,利用捏合手势实现图像缩放和显示
  4. VS2019删除空白行
  5. 【Tensorflow2.0】8、tensorflow2.0_hdf5_savedmodel_pb模型转换[1]
  6. win10调整鼠标滚轮方向
  7. 金蝶K3即时库存成本计算逻辑是什么?
  8. 大数据架构之-- Lambda架构
  9. Alibaba微服务组件Nacos单机+集群配置 prometheus+grafana监控配置及注册中心实战【收获满满】
  10. 123D画一个产品外壳3d图给3d打印机打印完整流程