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(一)Python环境安装
Aug 20 Python
python将ip地址转换成整数的方法
Mar 17 Python
用Python制作简单的钢琴程序的教程
Apr 01 Python
Python 模拟购物车的实例讲解
Sep 11 Python
Python递归实现汉诺塔算法示例
Mar 19 Python
基于DataFrame筛选数据与loc的用法详解
May 18 Python
python实现逆序输出一个数字的示例讲解
Jun 25 Python
Python3 串口接收与发送16进制数据包的实例
Jun 12 Python
使用python 将图片复制到系统剪贴中
Dec 13 Python
Pytorch 使用 nii数据做输入数据的操作
May 26 Python
如何用python免费看美剧
Aug 11 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
Feb 20 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
各种战术和打法的原创者
2020/03/04 星际争霸
PHP之变量、常量学习笔记
2008/03/27 PHP
PHPExcel简单读取excel文件示例
2016/05/26 PHP
ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解
2019/04/03 PHP
浅谈laravel5.5 belongsToMany自身的正确用法
2019/10/17 PHP
使用Git实现Laravel项目的自动化部署
2019/11/24 PHP
javascript SocialHistory 检查访问者是否访问过某站点
2008/08/02 Javascript
javaScript 删除字符串空格多种方法小结
2012/10/24 Javascript
简单解析JavaScript中的__proto__属性
2016/05/10 Javascript
几种二级联动案例(jQuery\Array\Ajax php)
2016/08/13 Javascript
基于vue cli重构多页面脚手架过程详解
2018/01/23 Javascript
vue中vee validate表单校验的几种基本使用
2018/06/25 Javascript
小程序从手动埋点到自动埋点的实现方法
2019/01/24 Javascript
浅谈Node 异步IO和事件循环
2019/05/05 Javascript
微信小程序实现比较功能的方法汇总(五种方法)
2020/03/07 Javascript
vant实现购物车功能
2020/06/29 Javascript
Chrome插件开发系列一:弹窗终结者开发实战
2020/10/02 Javascript
Vue实现一种简单的无限循环滚动动画的示例
2021/01/10 Vue.js
[56:12]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第一场 6.3
2018/06/04 DOTA
python批量同步web服务器代码核心程序
2014/09/01 Python
Python装饰器语法糖
2019/01/02 Python
Python获取Redis所有Key以及内容的方法
2019/02/19 Python
浅析PyCharm 的初始设置(知道)
2020/10/12 Python
在pycharm创建scrapy项目的实现步骤
2020/12/01 Python
印尼在线精品店:Berrybenka.com
2016/10/22 全球购物
斯凯奇澳大利亚官网:SKECHERS澳大利亚
2018/03/31 全球购物
美国鲍勃商店:Bob’s Stores
2018/07/22 全球购物
库房保管员岗位职责
2014/04/07 职场文书
邹越感恩父母演讲稿
2014/08/28 职场文书
争先创优公开承诺书
2014/08/30 职场文书
个人作风建设总结
2014/10/23 职场文书
2014年小学图书室工作总结
2014/12/09 职场文书
春晚观后感
2015/06/11 职场文书
2015年计算机教学工作总结
2015/07/22 职场文书
python如何获取网络数据
2021/04/11 Python
VMware虚拟机安装 Windows Server 2022的详细图文教程
2022/09/23 Servers