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爬虫之抓取百度贴吧并存储到本地txt文件改进版
Nov 06 Python
python实现向ppt文件里插入新幻灯片页面的方法
Apr 28 Python
Python中getattr函数和hasattr函数作用详解
Jun 14 Python
用python记录运行pid,并在需要时kill掉它们的实例
Jan 16 Python
Django与JS交互的示例代码
Aug 23 Python
python查看列的唯一值方法
Jul 17 Python
python 抓包保存为pcap文件并解析的实例
Jul 23 Python
Python类及获取对象属性方法解析
Jun 15 Python
python 爬取B站原视频的实例代码
Sep 09 Python
Django搭建项目实战与避坑细节详解
Dec 06 Python
python实现三种随机请求头方式
Jan 05 Python
python入门之算法学习
Apr 22 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
Linux中用PHP判断程序运行状态的2个方法
2014/05/04 PHP
thinkphp框架实现删除和批量删除
2016/06/29 PHP
PHP 序列化和反序列化函数实例详解
2020/07/18 PHP
PHP实现图的邻接矩阵表示及几种简单遍历算法分析
2017/11/24 PHP
php中的explode()函数实例介绍
2019/01/18 PHP
jquery $.getJSON()跨域请求
2011/12/21 Javascript
jquery对table中各数据的增加、保存、删除操作示例
2014/05/14 Javascript
jQuery实现鼠标可拖动调整表格列宽度
2014/05/26 Javascript
JavaScript Serializer序列化时间处理示例
2014/07/31 Javascript
js实现鼠标感应向下滑动隐藏菜单的方法
2015/02/20 Javascript
JS实现统计复选框选中个数并提示确定与取消的方法
2015/07/01 Javascript
jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法
2016/01/19 Javascript
理解javascript中的严格模式
2016/02/01 Javascript
a标签跳转到指定div,jquery添加和移除class属性的实现方法
2016/10/10 Javascript
javascript基本数据类型及类型检测常用方法小结
2016/12/14 Javascript
手把手教你搭建ES6的开发运行环境
2017/07/11 Javascript
vue中使用vue-router切换页面时滚动条自动滚动到顶部的方法
2017/11/28 Javascript
微信小程序仿朋友圈发布动态功能
2018/07/15 Javascript
axios简单实现小程序延时loading指示
2018/07/30 Javascript
JavaScript中arguments和this对象用法分析
2018/08/08 Javascript
puppeteer实现html截图的示例代码
2019/01/10 Javascript
jQuery实现图片下载代码
2019/07/18 jQuery
分享Angular http interceptors 拦截器使用(推荐)
2019/11/10 Javascript
如何基于js判断浏览器版本
2020/02/20 Javascript
[41:17]VG vs Optic 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
基于Django模板中的数字自增(详解)
2017/09/05 Python
Python处理菜单消息操作示例【基于win32ui模块】
2018/05/09 Python
关于django python manage.py startapp 应用名出错异常原因解析
2020/12/15 Python
html5跳转小程序wx-open-launch-weapp踩坑
2020/12/02 HTML / CSS
英国最全面的橄榄球联盟门票网站:Live Rugby Tickets
2018/10/06 全球购物
Liu Jo西班牙官网:意大利服装品牌
2019/09/11 全球购物
亚洲颇具影响力的男性在线购物零售商:His
2019/11/24 全球购物
广告学专业毕业生自荐信
2014/05/28 职场文书
运动会广播稿100字
2014/09/14 职场文书
医院保洁员管理制度
2015/08/05 职场文书
教务处干事工作总结
2015/08/14 职场文书