Python版名片管理系统


Posted in Python onNovember 30, 2018

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

先建立cards_main的文件

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("输入错误,请重新输入:")

再建立一个cards_tools的文件

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

效果图:

Python版名片管理系统
Python版名片管理系统
Python版名片管理系统
Python版名片管理系统

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

Python 相关文章推荐
python实现将html表格转换成CSV文件的方法
Jun 28 Python
Python提取Linux内核源代码的目录结构实现方法
Jun 24 Python
python找出一个列表中相同元素的多个索引实例
Jun 11 Python
Python中使用__new__实现单例模式并解析
Jun 25 Python
FFT快速傅里叶变换的python实现过程解析
Oct 21 Python
python3.8 微信发送服务器监控报警消息代码实现
Nov 05 Python
python中自带的三个装饰器的实现
Nov 08 Python
python爬虫爬取笔趣网小说网站过程图解
Nov 18 Python
python+selenium+PhantomJS抓取网页动态加载内容
Feb 25 Python
Django Serializer HiddenField隐藏字段实例
Mar 31 Python
用python发送微信消息
Dec 21 Python
基于tensorflow __init__、build 和call的使用小结
Feb 26 Python
Python unittest 简单实现参数化的方法
Nov 30 #Python
解决pip install xxx报错SyntaxError: invalid syntax的问题
Nov 30 #Python
python3实现名片管理系统
Nov 29 #Python
Python中fnmatch模块的使用详情
Nov 30 #Python
pycharm 解除默认unittest模式的方法
Nov 30 #Python
配置 Pycharm 默认 Test runner 的图文教程
Nov 30 #Python
基于python实现名片管理系统
Nov 30 #Python
You might like
检查php文件中是否含有bom的函数
2012/05/31 PHP
php fsockopen解决办法 php实现多线程
2014/01/20 PHP
PHP COOKIE及时生效的方法介绍
2014/02/14 PHP
php多任务程序实例解析
2014/07/19 PHP
php获取英文姓名首字母的方法
2015/07/13 PHP
PHP中使用GD库绘制折线图 折线统计图的绘制方法
2015/11/09 PHP
thinkPHP模板算术运算相关函数用法分析
2016/07/12 PHP
Redis在Laravel项目中的应用实例详解
2017/08/11 PHP
jquery URL参数判断,确定菜单样式
2010/05/31 Javascript
jQuery代码优化 选择符篇
2011/11/01 Javascript
13 个JavaScript 性能提升技巧分享
2012/07/26 Javascript
javascript获取鼠标点击元素对象(示例代码)
2013/12/20 Javascript
JS实现的论坛Ajax打分效果完整实例
2015/10/31 Javascript
js实现接收表单的值并将值拼在表单action后面的方法
2015/11/23 Javascript
JavaScrip常见的一些算法总结
2015/12/28 Javascript
仅9张思维导图帮你轻松学习Javascript 就这么简单
2016/06/01 Javascript
获取当前月(季度/年)的最后一天(set相关操作及应用)
2016/12/27 Javascript
Angular实现购物车计算示例代码
2017/02/21 Javascript
微信小程序教程系列之新建页面(4)
2017/04/17 Javascript
vue组件父子间通信之综合练习(聊天室)
2017/11/07 Javascript
Angular 利用路由跳转到指定页面的指定位置方法
2018/08/31 Javascript
JS数组splice操作实例分析
2019/10/12 Javascript
使用axios请求接口,几种content-type的区别详解
2019/10/29 Javascript
[43:49]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
用smtplib和email封装python发送邮件模块类分享
2014/02/17 Python
python 顺时针打印矩阵的超简洁代码
2018/11/14 Python
Python 利用高德地图api实现经纬度与地址的批量转换
2019/08/14 Python
Python OpenCV读取中文路径图像的方法
2020/07/02 Python
python批量修改文件名的示例
2020/09/27 Python
财务人员个人自荐信范文
2013/09/26 职场文书
应届生护士求职信
2013/11/01 职场文书
4s客服专员岗位职责
2013/12/01 职场文书
法警的竞聘演讲稿
2014/01/02 职场文书
廉洁自律承诺书2015
2015/01/22 职场文书
毕业证明模板
2015/06/19 职场文书
Python与C++中梯度方向直方图的实现
2022/03/17 Python