基于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 相关文章推荐
Python 开发Activex组件方法
Nov 08 Python
python发布模块的步骤分享
Feb 21 Python
Python socket C/S结构的聊天室应用实现
Nov 30 Python
Python中逗号的三种作用实例分析
Jun 08 Python
Python实现感知器模型、两层神经网络
Dec 19 Python
Python实现的knn算法示例
Jun 14 Python
Python numpy.array()生成相同元素数组的示例
Nov 12 Python
PyTorch 1.0 正式版已经发布了
Dec 13 Python
如何使用python爬虫爬取要登陆的网站
Jul 12 Python
django Model层常用验证器及自定义验证器详解
Jul 15 Python
解决Ubuntu18中的pycharm不能调用tensorflow-gpu的问题
Sep 17 Python
Python request post上传文件常见要点
Nov 20 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中防止直接访问或查看或下载config.php文件的方法
2012/07/07 PHP
PHP Header用于页面跳转时的几个注意事项
2016/10/21 PHP
PHP下 Mongodb 连接远程数据库的实例代码
2017/08/30 PHP
tp5框架基于ajax实现异步删除图片的方法示例
2020/02/10 PHP
HTML中不支持静态Expando的元素的问题
2007/03/08 Javascript
响应鼠标变换表格背景或者颜色的代码
2009/03/30 Javascript
jQuery中获取checkbox选中项等操作及注意事项
2013/11/24 Javascript
JS如何判断移动端访问设备并解析对应CSS
2013/11/27 Javascript
jQuery响应enter键的实现思路
2014/04/18 Javascript
javascript中alert()与console.log()的区别
2015/08/26 Javascript
jquery中ajax跨域方法实例分析
2015/12/18 Javascript
AngularJS学习笔记之依赖注入详解
2016/05/16 Javascript
JavaScript解析JSON格式数据的方法示例
2017/01/24 Javascript
react中的ajax封装实例详解
2017/10/17 Javascript
浅谈Vuejs中nextTick()异步更新队列源码解析
2017/12/31 Javascript
微信小程序 如何保持登录状态
2019/08/16 Javascript
vue中watch和computed为什么能监听到数据的改变以及不同之处
2019/12/27 Javascript
Quasar Input:type="number" 去掉上下小箭头 实现加减按钮样式功能
2020/04/09 Javascript
vue实现用户长时间不操作自动退出登录功能的实现代码
2020/07/23 Javascript
js实现Element中input组件的部分功能并封装成组件(实例代码)
2021/03/02 Javascript
[03:03]DOTA2校园争霸赛 济南城市决赛欢乐发奖活动
2013/10/21 DOTA
Python守护进程(daemon)代码实例
2015/03/06 Python
详细介绍Python中的偏函数
2015/04/27 Python
python脚本爬取字体文件的实现方法
2017/04/29 Python
Python创建一个空的dataframe,并循环赋值的方法
2018/11/08 Python
对pandas中时间窗函数rolling的使用详解
2018/11/28 Python
对Python中TKinter模块中的Label组件实例详解
2019/06/14 Python
Python利用requests模块下载图片实例代码
2019/08/12 Python
python“静态”变量、实例变量与本地变量的声明示例
2020/11/13 Python
实习生的自我鉴定范文欣赏
2013/11/20 职场文书
给酒店员工的表扬信
2014/01/11 职场文书
成龙霸王洗发水广告词
2014/03/14 职场文书
勾股定理课后反思
2014/04/26 职场文书
会计人员演讲稿
2014/09/11 职场文书
志愿服务心得体会
2016/01/15 职场文书
音乐课《小猫钓鱼》教学反思
2016/02/18 职场文书