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获取文件版本信息、公司名和产品名的方法
Oct 05 Python
使用python遍历指定城市的一周气温
Mar 31 Python
python画出三角形外接圆和内切圆的方法
Jan 25 Python
idea创建springMVC框架和配置小文件的教程图解
Sep 18 Python
Python实现的读取文件内容并写入其他文件操作示例
Apr 09 Python
使用python实现mqtt的发布和订阅
May 05 Python
keras 特征图可视化实例(中间层)
Jan 24 Python
Python3.6 中的pyinstaller安装和使用教程
Mar 16 Python
Python绘制动态水球图过程详解
Jun 03 Python
python关于倒排列的知识点总结
Oct 13 Python
python collections模块的使用
Oct 16 Python
如何利用python生成MD5并去重
Dec 07 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实现分页的一个示例
2006/10/09 PHP
php 截取字符串并以零补齐str_pad() 函数
2011/05/07 PHP
php数组相加 array(“a”)+array(“b”)结果还是array(“a”)
2012/09/19 PHP
php 模拟get_headers函数的代码示例
2013/04/27 PHP
php创建基本身份认证站点的方法详解
2013/06/08 PHP
浅谈PHP中静态方法和非静态方法的相互调用
2016/10/04 PHP
HTML5如何适配 iPhone IOS 底部黑条
2021/03/09 HTML / CSS
Js的MessageBox
2006/12/03 Javascript
不要小看注释掉的JS 引起的安全问题
2008/12/27 Javascript
JS实现仿Windows经典风格的选项卡Tab切换代码
2015/10/20 Javascript
原生javascript实现分享到朋友圈功能 支持ios和android
2016/05/11 Javascript
浅析JavaScript动画模拟拖拽原理
2016/12/09 Javascript
node中使用es5/6以及支持性与性能对比
2017/08/11 Javascript
js用类封装pop弹窗组件
2017/10/08 Javascript
JS实现图片上传多次上传同一张不生效的处理方法
2018/08/06 Javascript
H5+C3+JS实现五子棋游戏(AI篇)
2020/05/28 Javascript
手把手教你 CKEDITOR 4 扩展插件制作
2019/06/18 Javascript
node.js中fs文件系统模块的使用方法实例详解
2020/02/13 Javascript
关于vue 结合原生js 解决echarts resize问题
2020/07/26 Javascript
[02:29]DOTA2英雄基础教程 陈
2013/12/17 DOTA
关于Python中空格字符串处理的技巧总结
2017/08/10 Python
Python温度转换实例分析
2018/01/17 Python
树莓派与PC端在局域网内运用python实现即时通讯
2019/06/22 Python
Python 基于wxpy库实现微信添加好友功能(简洁)
2019/11/29 Python
keras处理欠拟合和过拟合的实例讲解
2020/05/25 Python
opencv 查找连通区域 最大面积实例
2020/06/04 Python
Python绘图之二维图与三维图详解
2020/08/04 Python
美国和加拿大房车出售在线分类广告:RVT.com
2018/04/23 全球购物
GE设备配件:GE Appliance Parts(家电零件、配件和滤水器)
2018/11/28 全球购物
如何写一个自定义标签
2012/12/28 面试题
遗产继承公证书
2014/04/09 职场文书
体检通知范文
2015/04/21 职场文书
仙境之桥观后感
2015/06/16 职场文书
阿里云服务器搭建Php+Apache运行环境的详细过程
2021/05/15 PHP
Keras多线程机制与flask多线程冲突的解决方案
2021/05/28 Python
Java输出Hello World完美过程解析
2021/06/13 Java/Android