Python实现名片管理系统


Posted in Python onFebruary 14, 2020

本文实例为大家分享了Python实现名片管理系统的具体代码,供大家参考,具体内容如下

目标

综合应用已经学习过的知识点:

  • 变量
  • 流程控制
  • 函数
  • 模块

系统需求

1. 程序启动,显示名片管理系统欢迎界面,并显示功能菜单

Python实现名片管理系统

2 用户用数字选择不同的功能
3. 根据功能选择,执行不同的功能
4. 用户名片需要记录用户的 姓名、电话、QQ、邮件
5. 如果查询到指定的名片,用户可以选择 修改 或者 删除 名片

文件准备

新建 cards_main.py 保存主程序功能代码
新建 cards_tools.py 保存所有名片功能函数

代码

cards_main.py :

# encoding:utf-8
_date_ = "2020/2/8 12:17"

import cards_tools

while True:
 # 显示功能菜单
 cards_tools.caidan()
 xuanze=input("请选择希望操作的功能:")
 print("您选择的操作是【%s】" % xuanze)

 # 如果用户输入的是1,2,3则是针对名片的操作
 if xuanze in ["1","2","3"]:
 # 新增名片处理
 if xuanze=="1":
  cards_tools.zengjia()
 # 显示全部名片
 elif xuanze=="2":
  cards_tools.xianshi()
 # 查询和修改名片操作
 elif xuanze=="3":
  cards_tools.sousuo()

 # 如果用户输入的是0则退出系统
 elif xuanze=="0":
 print("正在退出,期待您再次使用【名片管理系统】!")
 break
 # 如果用户输入别的内容则提示输入有误
 else:
 print("您输入的不正确,请重新选择!!!")

cards_tools.py :

# encoding:utf-8
_date_ = "2020/2/8 12:32"

# 记录所有的名片字典
card_list = []

def caidan():
 """显示菜单"""
 print("*"*39)
 print("欢迎使用【名片管理系统】v1.0")
 print("")
 print("1.新增名片")
 print("2.显示全部")
 print("3.查询名片")
 print("")
 print("0.退出系统")
 print("*" * 39)

def zengjia():
 """新增名片"""
 print("-" * 39)
 print("新增名片")

 # 1.提示用户输入名片的详细信息
 name = input("请输入姓名:")
 phone = input("请输入电话号码:")
 qq = input("请输入QQ号码:")
 email = input("请输入邮箱地址:")
 # 2.使用用户输入的信息建立一个名片字典
 card_dict = {"姓名":name,
   "电话":phone,
   "QQ":qq,
   "邮箱":email
   }
 # 3.将名片字典添加到列表
 card_list.append(card_dict)

 # print(card_list)
 # 4.提示用户添加成功
 print("添加%s的名片成功!" % name)

def xianshi():
 """显示所有名片"""
 print("-" * 39)
 print("显示所有名片")

 if len(card_list)==0:
 print("当前没有任何名片记录,请使用新增名片功能添加新名片!")
 # return可以返回一个函数的执行结果
 # 下方的代码不会被执行
 # 如果return后面没有任何的内容,表示会返回到调用函数的位置
 # 并且不返回任何的结果
 return
 # 打印表头
 for biaotou in["姓名","电话","QQ","邮箱"]:
 print(biaotou,end="\t\t")
 print("")

 # 打印分割线
 print("=" * 39)
 # 遍历名片列表依次输出字典信息
 for i in card_list:
 print("%s\t\t%s\t\t%s\t\t%s"%(i["姓名"],
     i["电话"],
     i["QQ"],
     i["邮箱"]))

def sousuo():
 """搜索名片"""
 print("-" * 39)
 print("搜索名片")

 # 1.提示用户输入要搜索的姓名
 find_name=input("请输入要搜索的姓名:")

 # 2.遍历名片列表,查询要搜索的姓名,如果没有找到,需要提示用户
 for i in card_list:
 if i["姓名"]==find_name:
  print("姓名\t\t电话\t\tQQ\t\t邮箱")
  print("="*39)
  print("%s\t\t%s\t\t%s\t\t%s" % (i["姓名"],
      i["电话"],
      i["QQ"],
      i["邮箱"]))
  # 针对找到的名片记录执行修改和删除的操作
  deal_card(i)
  break
 else:
 print("抱歉,没有找到%s,请重新输入!"%find_name)

def deal_card(find_dict):
 """
 处理查找到的名片
 :param find_dict:查找到的名片
 """
 # print(find_dict)

 action_str = input("请选择要执行的操作1.修改 2.删除 0.返回上级菜单:")

 if action_str=="1":
 find_dict["姓名"]=input_card_info(find_dict["姓名"],"请输入要修改的姓名:")
 find_dict["电话"] = input_card_info(find_dict["电话"],"请输入要修改的电话:")
 find_dict["QQ"] = input_card_info(find_dict["QQ"],"请输入要修改的QQ:")
 find_dict["邮箱"] = input_card_info(find_dict["邮箱"],"请输入要修改的邮箱:")
 print("修改名片成功!")
 elif action_str=="2":
 card_list.remove(find_dict)
 print("删除【%s】名片成功!" %find_dict["姓名"])

def input_card_info(dict_value,tip_message ):
 """
 输入名片信息
 :param dict_value:字典中原有值
 :param tip_message: 输入的提示文字
 :return: 如果用户输入了内容,就返回内容,否则返回字典中原有值
 """
 # 1.提示用户输入内容
 result_str = input(tip_message)
 # 2.针对用户输入进行判断,如果用户输入了内容,直接返回结果
 if len(result_str)>0:
 return result_str
 # 3.如果用户没有输入内容,返回“字典中的原有值”
 else:
 return dict_value

更多学习资料请关注专题《管理系统开发》。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python格式化字符串实例总结
Sep 28 Python
详解Python 模拟实现生产者消费者模式的实例
Aug 10 Python
python+selenium实现登录账户后自动点击的示例
Dec 22 Python
Python实现识别手写数字 Python图片读入与处理
Mar 23 Python
基于DataFrame筛选数据与loc的用法详解
May 18 Python
对Python捕获控制台输出流的方法详解
Jan 07 Python
flask框架自定义过滤器示例【markdown文件读取和展示功能】
Nov 08 Python
使用Python内置模块与函数进行不同进制的数的转换
Apr 26 Python
python创建文本文件的简单方法
Aug 30 Python
Python连接mysql方法及常用参数
Sep 01 Python
python 实现性别识别
Nov 21 Python
Pycharm Plugins加载失败问题解决方案
Nov 28 Python
pycharm设置当前工作目录的操作(working directory)
Feb 14 #Python
python设置代理和添加镜像源的方法
Feb 14 #Python
pycharm 中mark directory as exclude的用法详解
Feb 14 #Python
Python读取分割压缩TXT文本文件实例
Feb 14 #Python
Pytorch .pth权重文件的使用解析
Feb 14 #Python
Python netmiko模块的使用
Feb 14 #Python
pytorch模型存储的2种实现方法
Feb 14 #Python
You might like
php auth_http类库进行身份效验
2009/03/19 PHP
LAMP环境使用Composer安装Laravel的方法
2017/03/25 PHP
php调用云片网接口发送短信的实现方法
2017/10/25 PHP
php获取用户真实IP和防刷机制的实例代码
2018/11/28 PHP
不用构造函数(Constructor)new关键字也能实现JavaScript的面向对象
2013/01/11 Javascript
JavaScript:Date类型全面解析
2016/05/19 Javascript
jQuery页面弹出框实现文件上传
2017/02/09 Javascript
angularjs中的$eval方法详解
2017/04/24 Javascript
Bootstrap与Angularjs的模态框实例代码
2017/08/03 Javascript
mpvue构建小程序的方法(步骤+地址)
2018/05/22 Javascript
取消Bootstrap的dropdown-menu点击默认关闭事件方法
2018/08/10 Javascript
JavaScript数组去重实现方法小结
2020/01/17 Javascript
Vue指令实现OutClick的示例
2020/11/16 Javascript
[07:20]2014DOTA2西雅图国际邀请赛 选手讲解积分赛第二天
2014/07/11 DOTA
[01:13]这,就是刀塔
2014/07/16 DOTA
[48:00]EG vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.26
2018/08/29 DOTA
Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例
2018/03/15 Python
Python实现带参数的用户验证功能装饰器示例
2018/12/14 Python
Python内置方法实现字符串的秘钥加解密(推荐)
2019/12/09 Python
Eclipse配置python默认头过程图解
2020/04/26 Python
Python2与Python3关于字符串编码处理的差别总结
2020/09/07 Python
CSS3 渐变(Gradients)之CSS3 径向渐变
2016/07/08 HTML / CSS
微信小程序“圣诞帽”的实现思路详解
2017/12/28 HTML / CSS
雅诗兰黛旗下走天然植物路线的彩妆品牌:Prescriptives
2016/08/14 全球购物
Microsoft新加坡官方网站:购买微软最新软件和技术产品
2016/10/28 全球购物
Gina Bacconi官网:吉娜贝康尼连衣裙和礼服
2018/04/24 全球购物
美国温暖商店:The Warming Store
2018/12/15 全球购物
int和Integer有什么区别
2013/05/25 面试题
优秀护士获奖感言
2014/02/20 职场文书
北体毕业生求职信
2014/02/28 职场文书
放飞梦想演讲稿600字
2014/08/26 职场文书
2014派出所所长群众路线对照检查材料思想汇报
2014/09/18 职场文书
湖南省党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
2019大学竞选班长发言稿
2019/06/27 职场文书
python 实现两个变量值进行交换的n种操作
2021/06/02 Python
opencv-python图像配准(匹配和叠加)的实现
2021/06/23 Python