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和bash统计CPU利用率的方法
Jul 10 Python
python如何通过实例方法名字调用方法
Mar 21 Python
Python中的引用知识点总结
May 20 Python
python3 实现函数写文件路径的正确方法
Nov 27 Python
Python简单实现词云图代码及步骤解析
Jun 04 Python
Python使用20行代码实现微信聊天机器人
Jun 05 Python
Python实现爬取网页中动态加载的数据
Aug 17 Python
python 实现ping测试延迟的两种方法
Dec 10 Python
使用python画出逻辑斯蒂映射(logistic map)中的分叉图案例
Dec 11 Python
python 如何上传包到pypi
Dec 24 Python
用Python进行栅格数据的分区统计和批量提取
May 27 Python
解决Python中的modf()函数取小数部分不准确问题
May 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
用PHP4访问Oracle815
2006/10/09 PHP
PHP安全防范技巧分享
2011/11/03 PHP
php读取大文件示例分享(文件操作类)
2014/04/13 PHP
php将HTML表格每行每列转为数组实现采集表格数据的方法
2015/04/03 PHP
浅谈PHP中关于foreach使用引用变量的坑
2016/11/14 PHP
PHP7扩展开发教程之Hello World实现方法示例
2017/08/03 PHP
PHP使用HTML5 FormData对象提交表单操作示例
2019/07/02 PHP
基于jquery 的一个progressbar widge
2010/10/29 Javascript
js下通过prototype扩展实现indexOf的代码
2010/12/08 Javascript
JQuery实现带排序功能的权限选择实例
2015/05/18 Javascript
jquery获取多个checkbox的值异步提交给php
2015/07/07 Javascript
JS中call/apply、arguments、undefined/null方法详解
2016/02/15 Javascript
分享jQuery封装好的一些常用操作
2016/07/28 Javascript
Bootstrap路径导航与分页学习使用
2017/02/08 Javascript
浅谈微信小程序flex布局基础
2018/09/10 Javascript
浅谈JavaScript节流和防抖函数
2020/08/25 Javascript
Vue封装全局过滤器Filters的步骤
2020/09/16 Javascript
[02:12]Dota 2 推出全新英雄—— 电炎绝手
2019/08/23 DOTA
[00:38]TI珍贵瞬间系列(二):笑
2020/08/26 DOTA
python开发之字符串string操作方法实例详解
2015/11/12 Python
详解python string类型 bytes类型 bytearray类型
2017/12/16 Python
基于数据归一化以及Python实现方式
2018/07/11 Python
python pyheatmap包绘制热力图
2018/11/09 Python
python实现UDP协议下的文件传输
2020/03/20 Python
Python 如何反方向迭代一个序列
2020/07/28 Python
用gpu训练好的神经网络,用tensorflow-cpu跑出错的原因及解决方案
2021/03/03 Python
华为旗下电子商务平台:华为商城
2016/08/06 全球购物
西铁城美国官方网站:Citizen Watch美国
2019/11/08 全球购物
资深生产主管自我评价
2013/09/22 职场文书
临床医学应届生求职信
2013/11/06 职场文书
数学教学随笔感言
2014/02/17 职场文书
机电专业大学生职业规划书范文
2014/02/25 职场文书
小学运动会班级口号
2014/06/09 职场文书
优秀员工评优方案
2014/06/13 职场文书
商场圣诞节活动总结
2015/05/06 职场文书
李白经典诗之一:全文无一“月”字,却句句有月
2019/07/12 职场文书