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编写一个基于终端的实现翻译的脚本
Apr 24 Python
python实现的DES加密算法和3DES加密算法实例
Jun 03 Python
python生成二维码的实例详解
Oct 29 Python
python2.7实现FTP文件下载功能
Apr 15 Python
Anaconda2下实现Python2.7和Python3.5的共存方法
Jun 11 Python
python数据结构学习之实现线性表的顺序
Sep 28 Python
在win10和linux上分别安装Python虚拟环境的方法步骤
May 09 Python
Python OpenCV之图片缩放的实现(cv2.resize)
Jun 28 Python
python中对_init_的理解及实例解析
Oct 11 Python
Python散点图与折线图绘制过程解析
Nov 30 Python
python批量生成条形码的示例
Oct 10 Python
python在linux环境下安装skimage的示例代码
Oct 14 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
实用函数7
2007/11/08 PHP
PHP 页面编码声明方法详解(header或meta)
2010/03/12 PHP
关于访问控制的一首PHP面试题(对属性或方法的访问控制)
2012/09/13 PHP
php数组合并array_merge()函数使用注意事项
2014/06/19 PHP
PHP对象相互引用的内存溢出实例分析
2014/08/28 PHP
PHP实现对二维数组某个键排序的方法
2016/09/14 PHP
PhpStorm本地断点调试的方法步骤
2018/05/21 PHP
PHP使用HTML5 FormData对象提交表单操作示例
2019/07/02 PHP
js+xml生成级联下拉框代码
2012/07/24 Javascript
jQuery select表单提交省市区城市三级联动核心代码
2014/06/09 Javascript
Router解决跨模块下的页面跳转示例
2018/01/11 Javascript
js实时监控文本框输入字数的实例代码
2018/01/18 Javascript
jQuery实现百度图片移入移出内容提示框上下左右移动的效果
2018/06/05 jQuery
微信小程序自定义prompt组件步骤详解
2018/06/12 Javascript
vue router 跳转后回到顶部的实例
2018/08/31 Javascript
Angular4 Select选择改变事件的方法
2018/10/09 Javascript
JavaScript封闭函数及常用内置对象示例
2019/05/13 Javascript
jquery validate 实现动态增加/删除验证规则操作示例
2019/10/28 jQuery
VUE 直接通过JS 修改html对象的值导致没有更新到数据中解决方法分析
2019/12/02 Javascript
package.json各个属性说明详解
2020/03/11 Javascript
Python3基础之输入和输出实例分析
2014/08/18 Python
数据挖掘之Apriori算法详解和Python实现代码分享
2014/11/07 Python
Python中将字典转换为XML以及相关的命名空间解析
2015/10/15 Python
python简单商城购物车实例代码
2018/03/15 Python
用Python编写一个简单的CS架构后门的方法
2018/11/20 Python
如何安装2019Pycharm最新版本(详细教程)
2019/09/26 Python
关于Numpy中的行向量和列向量详解
2019/11/30 Python
python groupby 函数 as_index详解
2019/12/16 Python
python FTP批量下载/删除/上传实例
2019/12/22 Python
Python HTMLTestRunner库安装过程解析
2020/05/25 Python
解决python3.6用cx_Oracle库连接Oracle的问题
2020/12/07 Python
Python实现Excel自动分组合并单元格
2021/02/22 Python
CSS3 clip-path 用法介绍详解
2018/03/01 HTML / CSS
2015年八一建军节慰问信
2015/03/23 职场文书
教您:房贷工资收入证明应该怎么写?
2019/08/19 职场文书
英镑符号 £
2022/02/17 杂记