基于python实现名片管理系统


Posted in Python onNovember 30, 2018

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

主程序:

import cards_tools
# 无限循环,由用户主动决定什么时候退出
while True:
# TODO注释,用于标记需要去做的工作

 cards_tools.show_menu()

 action_str = raw_input("请选择希望执行的操作: ")
 print("你选择的操作是 %s" % action_str)
 # 1,2,3针对名片的操作
 if action_str in ["1","2","3"]:
  if action_str == "1":
   cards_tools.new_card()
  elif action_str == "2":
   cards_tools.show_all()
  elif action_str == "3":
   cards_tools.search_card()

 # 0退出系统
 elif action_str == "0":
  print("欢迎再次使用【名片管理系统】:")

  break
  # 如果在开发程序时,不希望立刻编写分支内部的代码
  # 可以使用pass关键字,表示一个占位符,能够保证程序的代码结构正确
  # 运行程序时,pass关键字不会执行任何操作
 else:
  print("输入错误,请重新输入:")

基于python实现名片管理系统

程序工具包:

card_list = []


def show_menu():
 """显示菜单"""
 print '*' * 50
 print '欢迎使用【名片管理系统】'
 print ''
 print '1.新增名片'
 print '2.显示全部'
 print '3.搜索名片'
 print '0.退出系统'
 print '*' * 50


def new_card():
 """新增名片"""
 print '-' * 50
 print '新增名片'
 # 1.提示用户输入名片的详细信息
 name_str = raw_input('请输入姓名:')
 phone_str = raw_input('请输入电话:')
 qq_str = raw_input('请输入QQ:')
 email_str = raw_input('请输入邮箱:')

 # 2.使用用户输入的信息建立一个名片字典
 card_dict = {'name_str': name_str,
     'phone_str': phone_str,
     'qq_str': qq_str,
     'email_str': email_str}

 # 3.将名片字典添加到列表中
 card_list.append(card_dict) # 把一个字典追加到一个列表中
 print card_list
 # 4.提示用户添加成功
 print '添加%s的名片成功' % name_str


def show_all():
 """显示所有名片"""
 print '-' * 50
 print '显示所有名片'

 # 判断是否存在名片记录,如果没有,提示用户并且返回
 if len(card_list) == 0:
  print '当前没有任何的名片记录,请使用新增功能添加名片'
  # return 可以返回一个函数的执行结果
  # 下方的代码不会被执行
  # 如果return后面没有任何的内容,表示会返回到调用函数的位置
  # 并且不返回任何结果
  return
 # 打印表头
 for name in ["姓名", "电话", "QQ", "邮箱"]:
  print name,
 print ''
 # 打印分隔线
 print '=' * 50

 # 遍历名片列表依次输出字典信息
 for card_dict in card_list:
  # print card_dict
  print '%s\t\t%s\t\t%s\t\t%s' % (card_dict['name_str'],
          card_dict['phone_str'],
          card_dict['qq_str'],
          card_dict['email_str'])


def search_card():
 """搜索名片"""
 print '-' * 50
 print '搜索名片'

 # 1.提示用户输入要搜索的姓名
 find_name = raw_input('请输入要搜索的姓名:')
 # 2.遍历名片列表,查询要搜索的姓名,如果没有找到,需要提示用户
 for card_dict in card_list:
  if card_dict['name_str'] == find_name:
   print '姓名 电话 QQ 邮箱'
   print '=' * 50
   print '%s %s %s %s' % (card_dict['name_str'],
         card_dict['phone_str'],
         card_dict['qq_str'],
         card_dict['email_str'])

   # TODO 针对找到的名片记录执行修改和删除的操作
   # 在我们的日常编写程序中,如果一个函数的代码太多,阅读和编写都是一件困难的事情,而在开发中,可以针对一个具体独立的功能来封装一个函数,由这个函数来处理具体的操作,这样就能保证每个函数中的代码清晰明了,功能明确
   deal_card(card_dict)
   break

  else:
   print '抱歉,没有找到%s' % find_name


def deal_card(find_dict):
 print find_dict
 action_str = raw_input('请选择要执行的操作 '
       '[1] 修改 [2] 删除 :')
 # 替换已经存在的键值对
 if action_str == '1':
  find_dict['name_str'] = input_card_info(find_dict['name_str'], '姓名:')
  find_dict['phone_str'] = input_card_info(find_dict['phone_str'], '电话:')
  find_dict['qq_str'] = input_card_info(find_dict['qq_str'], 'QQ:')
  find_dict['email_str'] = input_card_info(find_dict['email_str'], '邮箱:')

  print '修改名片成功!!!'
 elif action_str == '2':

  card_list.remove(find_dict)

  print '删除名片成功!!!'

def input_card_info(dict_value, tip_message):


 """

 :param dict_value:字典中原有的值
 :param tip_message:输入的提示文字
 :return:如果用户输入了内容,就返回内容,负责返回字典中原有的值
 """
 # 1.提示用户输入内容

 result_str = raw_input(tip_message)
 # 2.针对用户的输入进行判断,如果用户输入了内容,直接返回结果
 if len(result_str) > 0:
  return result_str
 # 3.如果用户没有输入内容,返回‘字典中原有的值'
 else:
  return dict_value

实现效果:

/usr/bin/python2.7 /home/kiosk/PycharmProjects/python/第四天/综合应用-名片管理系统/cards_main.py
**************************************************
欢迎使用【名片管理系统】

1.新增名片
2.显示全部
3.搜索名片
0.退出系统
**************************************************
请选择希望执行的操作: 2
你选择的操作是 2
--------------------------------------------------
显示所有名片
当前没有任何的名片记录,请使用新增功能添加名片
**************************************************
欢迎使用【名片管理系统】

1.新增名片
2.显示全部
3.搜索名片
0.退出系统
**************************************************
请选择希望执行的操作: 1
你选择的操作是 1
--------------------------------------------------
新增名片
请输入姓名:薛飞龙
请输入电话:123456
请输入QQ:456123
请输入邮箱:456123@qq.com
[{'qq_str': '456123', 'name_str': '\xe8\x96\x9b\xe9\xa3\x9e\xe9\xbe\x99', 'phone_str': '123456', 'email_str': '456123@qq.com'}]
添加薛飞龙的名片成功
**************************************************
欢迎使用【名片管理系统】

1.新增名片
2.显示全部
3.搜索名片
0.退出系统
**************************************************
请选择希望执行的操作: 3
你选择的操作是 3
--------------------------------------------------
搜索名片
请输入要搜索的姓名:薛飞龙
姓名 电话 QQ 邮箱
==================================================
薛飞龙 123456 456123 456123@qq.com
{'qq_str': '456123', 'name_str': '\xe8\x96\x9b\xe9\xa3\x9e\xe9\xbe\x99', 'phone_str': '123456', 'email_str': '456123@qq.com'}
请选择要执行的操作 [1] 修改 [2] 删除 :1
姓名:项媛媛
电话:
QQ:
邮箱:
修改名片成功!!!
**************************************************
欢迎使用【名片管理系统】

1.新增名片
2.显示全部
3.搜索名片
0.退出系统
**************************************************
请选择希望执行的操作: 2
你选择的操作是 2
--------------------------------------------------
显示所有名片
姓名 电话 QQ 邮箱 
==================================================
项媛媛  123456  456123  456123@qq.com
**************************************************
欢迎使用【名片管理系统】

1.新增名片
2.显示全部
3.搜索名片
0.退出系统
**************************************************
请选择希望执行的操作: 0
你选择的操作是 0
欢迎再次使用【名片管理系统】:

基于python实现名片管理系统

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

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

Python 相关文章推荐
Python3实现生成随机密码的方法
Aug 23 Python
Python生成不重复随机值的方法
May 11 Python
Python3控制路由器——使用requests重启极路由.py
May 11 Python
python 数据的清理行为实例详解
Jul 12 Python
python dlib人脸识别代码实例
Apr 04 Python
python利用selenium进行浏览器爬虫
Apr 25 Python
python安装gdal的两种方法
Oct 29 Python
Django配置文件代码说明
Dec 04 Python
Python统计学一数据的概括性度量详解
Mar 03 Python
Mac中PyCharm配置Anaconda环境的方法
Mar 04 Python
python 生成任意形状的凸包图代码
Apr 16 Python
Python读取yaml文件的详细教程
Jul 21 Python
django小技巧之html模板中调用对象属性或对象的方法
Nov 30 #Python
PyCharm鼠标右键不显示Run unittest的解决方法
Nov 30 #Python
python实现简单名片管理系统
Nov 30 #Python
python3学生名片管理v2.0版
Nov 29 #Python
python实现名片管理系统
Nov 29 #Python
Python中利用aiohttp制作异步爬虫及简单应用
Nov 29 #Python
Python中logging.NullHandler 的使用教程
Nov 29 #Python
You might like
PHP写的获取各搜索蜘蛛爬行记录代码
2012/08/21 PHP
根据ip调用新浪api获取城市名并转成拼音
2014/03/07 PHP
如何实现php图片等比例缩放
2015/07/28 PHP
php数字每三位加逗号的功能函数
2015/10/22 PHP
php实现微信原生支付(扫码支付)功能
2018/05/30 PHP
PHP常见加密函数用法示例【crypt与md5】
2019/01/27 PHP
浅谈Laravel中的三种中间件的作用
2019/10/13 PHP
JS图片无缝滚动(简单利于使用)
2013/06/17 Javascript
jquery mobile实现拨打电话功能的几种方法
2013/08/05 Javascript
jquery实现手风琴效果实例代码
2013/11/15 Javascript
jquery Tab效果和动态加载的简单实例
2013/12/11 Javascript
javascript表单验证大全
2015/08/12 Javascript
Bootstrap3制作搜索框样式的方法
2016/07/11 Javascript
AngularJS ng-bind 指令简单实现
2016/07/30 Javascript
JS简单测试循环运行时间的方法
2016/09/04 Javascript
jquery实现tab键进行选择后enter键触发click行为
2017/03/29 jQuery
easyui-edatagrid.js实现回车键结束编辑功能的实例
2017/04/12 Javascript
requirejs + vue 项目搭建详解
2017/06/16 Javascript
Bootstrap滚动监听组件scrollspy.js使用方法详解
2017/07/20 Javascript
详解微信小程序的 request 封装示例
2018/08/21 Javascript
JavaScript创建对象的四种常用模式实例分析
2019/01/11 Javascript
微信小程序自定义头部导航栏(组件化)
2019/11/15 Javascript
小程序表单认证布局及验证详解
2020/06/19 Javascript
Python使用代理抓取网站图片(多线程)
2014/03/14 Python
Python的Django框架中settings文件的部署建议
2015/05/30 Python
Windows下搭建python开发环境详细步骤
2020/07/20 Python
Python基于win32ui模块创建弹出式菜单示例
2018/05/09 Python
浅谈pyqt5中信号与槽的认识
2019/02/17 Python
使用python快速在局域网内搭建http传输文件服务的方法
2019/11/14 Python
Python基于numpy模块实现回归预测
2020/05/14 Python
利用CSS3实现进度条的两种姿势详解
2017/03/21 HTML / CSS
办理居住证介绍信
2014/01/15 职场文书
致裁判员加油稿
2014/02/08 职场文书
2016年教师寒假学习心得体会
2015/10/09 职场文书
理解深度学习之深度学习简介
2021/04/14 Python
七个非常实用的Python工具包总结
2021/06/15 Python