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守护进程(daemon)代码实例
Mar 06 Python
python避免死锁方法实例分析
Jun 04 Python
Python中断言Assertion的一些改进方案
Oct 27 Python
python3中int(整型)的使用教程
Mar 23 Python
Windows下安装python2和python3多版本教程
Mar 30 Python
微信跳一跳python自动代码解读1.0
Jan 12 Python
python检索特定内容的文本文件实例
Jun 05 Python
python3爬虫获取html内容及各属性值的方法
Dec 17 Python
详解Appium+Python之生成html测试报告
Jan 04 Python
python pandas写入excel文件的方法示例
Jun 25 Python
python图形开发GUI库pyqt5的基本使用方法详解
Feb 14 Python
python实现模拟器爬取抖音评论数据的示例代码
Jan 06 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
用缓存实现静态页面的测试
2006/12/06 PHP
yii框架表单模型使用及以数组形式提交表单数据示例
2014/04/30 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
弹出模态框modal的实现方法及实例
2017/09/19 PHP
Laravel框架集成UEditor编辑器的方法图文与实例详解
2019/04/17 PHP
Laravel 之url参数,获取路由参数的例子
2019/10/21 PHP
用 JavaScript 迁移目录
2006/12/18 Javascript
关于jquery input textare 事件绑定及用法学习
2013/04/03 Javascript
js利用事件的阻止冒泡实现点击空白模态框的隐藏
2014/01/24 Javascript
简介JavaScript中的push()方法的使用
2015/06/09 Javascript
浅谈JavaScript的全局变量与局部变量
2016/06/10 Javascript
jquery移除了live()、die(),新版事件绑定on()、off()的方法
2016/10/26 Javascript
详解node HTTP请求客户端 - Request
2017/05/05 Javascript
Javascript es7中比较实用的两个方法示例
2017/07/21 Javascript
浅谈vue中改elementUI默认样式引发的static与assets的区别
2018/02/03 Javascript
你可能不知道的CORS跨域资源共享
2019/03/13 Javascript
vue-cli 3.x配置跨域代理的实现方法
2019/04/12 Javascript
vue.js 2.*项目环境搭建、运行、打包发布的详细步骤
2019/05/01 Javascript
Layui 动态禁止select下拉的例子
2019/09/03 Javascript
Vue.js获取手机系统型号、版本、浏览器类型的示例代码
2020/05/10 Javascript
Python中的Matplotlib模块入门教程
2015/04/15 Python
Python单体模式的几种常见实现方法详解
2017/07/28 Python
python3.4 将16进制转成字符串的实例
2019/06/12 Python
Django的models中on_delete参数详解
2019/07/16 Python
python 实现压缩和解压缩的示例
2020/09/22 Python
Python 实现集合Set的示例
2020/12/21 Python
线程同步的方法
2016/11/23 面试题
高中毕业自我鉴定
2013/12/19 职场文书
我为自己代言广告词
2014/03/18 职场文书
事假请假条范文
2014/04/11 职场文书
教书育人演讲稿
2014/09/11 职场文书
手把手教你制定暑期学习计划,让你度过充实的暑假
2019/08/22 职场文书
Pytorch 如何实现LSTM时间序列预测
2021/05/17 Python
python 常用的异步框架汇总整理
2021/06/18 Python
中国古风插画师排行榜:夏达第一,第三是阴阳师姑获鸟皮肤创作者
2022/03/18 国漫
vue 自定义的组件绑定点击事件
2022/04/21 Vue.js