python实现名片管理系统


Posted in Python onNovember 29, 2018

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

系统需求

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

**************************************************
欢迎使用【名片管理系统】V1.0
 
1. 新建名片
2. 显示全部
3. 查询名片
 
0. 退出系统
**************************************************

  • 用户用数字选择不同的功能
  • 根据功能选择,执行不同的功能
  • 用户名片需要记录用户的 姓名、电话、QQ、邮件
  • 如果查询到指定的名片,用户可以选择 修改 或者 删除 名片
  • 信息保存本地

需求分析

  • 采用分文件的方式进行开发,主文件cards_main.py复杂业务逻辑,cards_tool.py文件负责具体的功能实现。
  • 新建名片、显示全部、查询名片 对应相应的功能函数。如果代码过长,再进行拆分。
  • 数据结构的选择?一条名片包含多个键值对采用字典数据类型,所有名片信息 采用列表数据结构。
  • 保证名片信息的本地保存和读取使用python的文件操作,进入名片系统先对名信息文件进行读取,在退出名片系统时,将所有名片信息重新写入到名片文件中。

代码实现

代码很简洁,注释太多 容易凌乱。

cards_main.py

import cards_tool
# 主业务逻辑
cards_tool.read_card()
 
 
# 1.显示用户主界面
while True:
 cards_tool.show_menu()
 menu_str = input("请选择执行的操作:")
 print("您选择的功能:%s" % menu_str)
 if menu_str == "1":
  cards_tool.create_card()
 elif menu_str == "2":
  cards_tool.show_card_all()
 elif menu_str == "3":
  cards_tool.search_card()
 elif menu_str == "0":
  cards_tool.write_card()
  break
 else:
  print("输入有误,请重新输入")

cards_tool.py

import os
card_info_all = [] # 所有名片信息
# 名片管理 具体功能
def write_card():
 """退出系统时,将名片信息保存到文件夹中"""
 f = open("E:\\workspace_python\\FirstDemo\\名片管理系统.txt", "w")
 f.write(str(card_info_all))
 f.close()
 
 
def read_card():
 """进入系统时,将名片信息加载到内存中"""
 is_exist = os.path.exists("E:\\workspace_python\\FirstDemo\\名片管理系统.txt")
 if is_exist:
  # 文件存在将信息加载到内存中
  f = open("E:\\workspace_python\\FirstDemo\\名片管理系统.txt","r")
  global card_info_all
  card_info_all = eval(f.read())
  # print(card_info_all)
  f.close()
 else:
  # 没有文件创建空文件
  f = open("E:\\workspace_python\\FirstDemo\\名片管理系统.txt", "w")
  f.close()
 print(is_exist)
 
 
def show_menu():
 """主菜单页面展示"""
 print("*"*30)
 print("欢迎使用[命名管理系统] v1.0")
 print()
 print("1.新建名片")
 print("2.显示全部")
 print("3.查询名片")
 print()
 print("0.退出系统")
 print("*"*30)
 
 
def create_card():
 """新建名片"""
 print("功能:新建名片")
 name = input("请输入姓名:")
 phone = input("请输入电话:")
 qq = input("请输入qq号:")
 email = input("请输入邮箱:")
 card_info = {"name":name,"phone":phone, "qq":qq, "email":email}
 card_info_all.append(card_info)
 print("添加%s的名片成功" % name)
 
 
def show_card_all():
 """显示所有名片"""
 print("功能:显示全部")
 if not len(card_info_all):
  print("没有任何名片")
  return
 print("name".ljust(14),"phone".ljust(14),"qq".ljust(14),"email".ljust(14),sep="")
 print("-"*56)
 for card in card_info_all:
  print(card["name"].ljust(14),card["phone"].ljust(14),card["qq"].ljust(14),card["email"].ljust(14),sep="")
  print("-"*56)
 
 
def search_card():
 """查询名片"""
 print("功能:查询名片")
 name = input("请输入查询的姓名:")
 for card in card_info_all:
  if name == card["name"]:
   print("name".ljust(14), "phone".ljust(14), "qq".ljust(14), "email".ljust(14), sep="")
   print("-" * 56)
   print(card["name"].ljust(14), card["phone"].ljust(14), card["qq"].ljust(14), card["email"].ljust(14),sep="")
   # 名片高级处理
   set_card(card)
   break;
 else:
  print("没有找到%s" % name)
 
 
def set_card(card):
 """名片的高级设置"""
 while True:
  menu = input("请输入对名片的操作:1.修改/ 2.删除/ 0.返回上一级")
  if menu == "1":
   name = input("请输入姓名:")
   phone = input("请输入电话:")
   qq = input("请输入qq号:")
   email = input("请输入邮箱:")
   card["name"] = name
   card["phone"] = phone
   card["qq"] = qq
   card["email"] = email
   print("%s 的名片修改成功" % name)
   return
  elif menu == "2":
   card_info_all.remove(card)
   print("删除名片成功")
   return
  elif menu == "0":
   return
  else:
   print("输入有误,请重新输入")

代码运行结果

python实现名片管理系统

python实现名片管理系统

练习总结

这个小练习主要是对python基础知识的综合运用,入手python 这些基本知识一定要掌握,有过其他编程语言经验的小伙伴是不是感觉很简单。

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

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

Python 相关文章推荐
Python基础知识_浅谈用户交互
May 31 Python
Python使用numpy模块创建数组操作示例
Jun 20 Python
python+opencv 读取文件夹下的所有图像并批量保存ROI的方法
Jan 10 Python
选择python进行数据分析的理由和优势
Jun 25 Python
Pandas-Cookbook 时间戳处理方式
Dec 07 Python
Python 实现opencv所使用的图片格式与 base64 转换
Jan 09 Python
python异常处理、自定义异常、断言原理与用法分析
Mar 23 Python
Python3自定义http/https请求拦截mitmproxy脚本实例
May 11 Python
使用Numpy对特征中的异常值进行替换及条件替换方式
Jun 08 Python
关于pycharm 切换 python3.9 报错 ‘HTMLParser‘ object has no attribute ‘unescape‘ 的问题
Nov 24 Python
用Python制作灯光秀短视频的思路详解
Apr 13 Python
Pytest中skip skipif跳过用例详解
Jun 30 Python
Python中利用aiohttp制作异步爬虫及简单应用
Nov 29 #Python
Python中logging.NullHandler 的使用教程
Nov 29 #Python
Mac下Anaconda的安装和使用教程
Nov 29 #Python
windows7 32、64位下python爬虫框架scrapy环境的搭建方法
Nov 29 #Python
解决pycharm py文件运行后停止按钮变成了灰色的问题
Nov 29 #Python
pycharm debug功能实现跳到循环末尾的方法
Nov 29 #Python
在PyCharm下打包*.py程序成.exe的方法
Nov 29 #Python
You might like
帅气的琦玉老师
2020/03/02 日漫
PHP.MVC的模板标签系统(三)
2006/09/05 PHP
Codeigniter实现智能裁剪图片的方法
2014/06/12 PHP
Yii2框架使用计划任务的方法
2016/05/25 PHP
jQuery 动画基础教程
2008/12/25 Javascript
加载 Javascript 最佳实践
2011/10/30 Javascript
javascript中setTimeout和setInterval的unref()和ref()用法示例
2014/11/26 Javascript
用javascript实现自动输出网页文本
2015/07/30 Javascript
通过vue提供的keep-alive减少对服务器的请求次数
2018/04/01 Javascript
如何在vue中使用jointjs过程解析
2020/05/29 Javascript
针对Vue路由history模式下Nginx后台配置操作
2020/10/22 Javascript
[06:25]DOTA2英雄梦之声_第17期_大地之灵
2014/06/20 DOTA
[54:27]TNC vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
零基础写python爬虫之urllib2中的两个重要概念:Openers和Handlers
2014/11/05 Python
python通过imaplib模块读取gmail里邮件的方法
2015/05/08 Python
详解Python中expandtabs()方法的使用
2015/05/18 Python
django模板语法学习之include示例详解
2017/12/17 Python
python sklearn常用分类算法模型的调用
2019/10/16 Python
详解tensorflow之过拟合问题实战
2020/11/01 Python
如何使用css3实现一个类在线直播的队列动画的示例代码
2020/06/17 HTML / CSS
html+js 实现markdown编辑器效果
2019/10/23 HTML / CSS
西尔斯百货官网:Sears
2016/09/06 全球购物
100%有机精油,美容油:House of Pure Essence
2018/10/30 全球购物
Can a struct inherit from another struct? (结构体能继承结构体吗)
2016/09/25 面试题
汉语言文学毕业生求职信
2013/10/01 职场文书
办公室副主任职责范本
2014/03/08 职场文书
交通工程专业推荐信
2014/09/06 职场文书
房屋租赁合同补充协议
2014/10/11 职场文书
部门优秀员工推荐信
2015/03/24 职场文书
2015年党日活动总结范文
2015/03/25 职场文书
从事会计工作年限证明
2015/06/23 职场文书
2015年教导处教学工作总结
2015/07/22 职场文书
2016年学校“6﹒26国际禁毒日”宣传活动总结
2016/04/05 职场文书
在Python中如何使用yield
2021/06/07 Python
Python字符串常规操作小结
2022/04/03 Python
德生TECSUN S-2000使用手册文字版
2022/05/10 无线电