详解Python做一个名片管理系统


Posted in Python onMarch 14, 2019

名片管理系统有两个模块组成:cards_main.py cards_tools.py一个是主程序,另一个是封装增删改查函数的被调用程序

代码如下

cards_main.py

#! /usr/bin/python
# -*- coding:utf-8 -*-
import cards_tools

# 无限循环,用户决定什么时候退出循环!
while True:
 # TODO(作者) 显示功能菜单
 # TODO 提醒要做的事情
 cards_tools.show_menu()

 action_str = raw_input('请选择希望执行的操作:')
 print '您选择的操作是【%s】' %action_str

 # 1,2,3针对名片的操作
 if action_str in ['1', '2', '3']:
  pass
  #新增名片
  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 '欢迎再次使用名片系统'
  #如果暂时不想写分支代码
  #可以用pass
  break
 # 其他内容错误,提示用户
 else:
  print '您输入的不正确,请重新选择'

cards_tools.py

cards_tools.py

# -*- coding:utf-8 -*-

#用列表记录所有名片字典
card_list = []


def show_menu():

 """显示菜单"""
 print '*'*50
 print '欢迎使用【名片管理系统 v1.0】'
 print ''
 print '1. 新增名片'
 print '2. 显示全部'
 print '3. 搜索名片'
 print '0. 退出系统'
 print '*'*50


def new_card():

 """新增名片"""
 print '新增名片'
 # 1. 提示用户输入名片的详细信息
 name_str = raw_input('请输入姓名:')
 phone_str = raw_input('请输入电话:')
 qq_str = raw_input('请输入QQ:')
 email_str = raw_input('请输入邮箱:')

 # 2. 使用用户输入信息建立一个字典
 card_dic = {'name': name_str,
    'phone': phone_str,
    'qq': qq_str,
    'email': email_str
 }

 # 3. 将名片字典添加到列表
 card_list.append(card_dic)

 # 4. 提示用户添加成功
 print '用户 %s 添加成功' %name_str


def show_all():

 """展示所有名片"""
 print '展示所有名片'

 # 如果没有任何名片
 if len(card_list) == 0:
  print '当前没有任何名片'

  # return可以返回结果给函数
  # 也可以直接结束函数
  # return后的代码不执行
  return

 # 打印表头
 for head in ['姓名', '电话','QQ', '邮箱']:
  print '%s\t\t' % head,
 print ''

 for card_dic in card_list:
  print '%s\t\t%s\t\t%s\t\t%s\t\t' % (card_dic['name'], card_dic['phone'], card_dic['qq']
           , card_dic['email'])
 print ''


def search_card():

 """搜索名片"""
 print '搜索名片'

 # 1. 提示用户要搜索的姓名
 find_name = raw_input('请输入你要搜索的姓名:')

 # 2. 遍历列表进行查询,如果没有则提示用户
 for card_dic in card_list:
  if card_dic['name'] == find_name:
   print '找到了 %s' % find_name
   print '%s\t\t%s\t\t%s\t\t%s\t\t' % (card_dic['name'], card_dic['phone'], card_dic['qq']
            , card_dic['email'])

   # 针对找到的记录进行修改和删除
   deal_card(card_dic)
   break
 else:
  print '没有找到 %s' % find_name


def deal_card(find_dic):

 """
 处理找到的名片,进行修改和删除
 :param find_dic: 找到的字典名片
 """
 print find_dic

 action_str = raw_input('请选择要执行的操作'
       '[1]修改 [2]删除 [0]返回上级菜单')

 if action_str == '1':

  input_card_info(find_dic['name'], '姓名:')
  input_card_info(find_dic['phone'], '电话:')
  input_card_info(find_dic['qq'], 'QQ:')
  input_card_info(find_dic['email'], '邮箱:')

  print '修改名片成功'

 elif action_str == '2':
  card_list.remove(find_dic)
  print '删除名片成功'


def input_card_info(dic_value, tip_message):
 """输入名片信息

 :param dic_value:字典原有值
 :param tip_message:输入的提示文字
 :return :返回修改后的值,如果没有输入则返回原值
 """
 result_str = raw_input(tip_message)
 # if len(result_str) > 0:
 #  return result_str
 # # 3. 如果用户没有输入,则用原来的值
 # else:
 #  return dic_value
 if len(result_str) > 0:
  dic_value = result_str
 else:
  dic_value = dic_value

以上所述是小编给大家介绍的Python如何做一个名片管理系统详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Tornado Web服务器多进程启动的2个方法
Aug 04 Python
Python使用reportlab将目录下所有的文本文件打印成pdf的方法
May 20 Python
详解Python 模拟实现生产者消费者模式的实例
Aug 10 Python
浅谈解除装饰器作用(python3新增)
Oct 15 Python
便捷提取python导入包的属性方法
Oct 15 Python
Python中flatten( )函数及函数用法详解
Nov 02 Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
Apr 09 Python
解决pycharm 工具栏Tool中找不到Run manager.py Task的问题
Jul 01 Python
Python获取命令实时输出-原样彩色输出并返回输出结果的示例
Jul 11 Python
pytorch 数据处理:定义自己的数据集合实例
Dec 31 Python
Python中zip()函数的解释和可视化(实例详解)
Feb 16 Python
推荐技术人员一款Python开源库(造数据神器)
Jul 08 Python
在Python中使用Neo4j的方法
Mar 14 #Python
浅谈Python中eval的强大与危害
Mar 13 #Python
详解python中init方法和随机数方法
Mar 13 #Python
Python使用sqlalchemy模块连接数据库操作示例
Mar 13 #Python
python ---lambda匿名函数介绍
Mar 13 #Python
Python实现的列表排序、反转操作示例
Mar 13 #Python
Python实现的调用C语言函数功能简单实例
Mar 13 #Python
You might like
PHP两种去掉数组重复值的方法比较
2014/06/19 PHP
类似框架的js代码
2006/11/09 Javascript
JS 参数传递的实际应用代码分析
2009/09/13 Javascript
Lazy Load 延迟加载图片的 jQuery 插件
2010/02/06 Javascript
JavaScript中的Truthy和Falsy介绍
2015/01/01 Javascript
js获取内联样式的方法
2015/01/27 Javascript
JS模拟并美化的表单控件完整实例
2015/08/19 Javascript
详解Document.Cookie
2015/12/25 Javascript
JavaScript实现数据类型的相互转换
2016/03/06 Javascript
JavaScript 节流函数 Throttle 详解
2016/07/04 Javascript
js HTML5手机刮刮乐代码
2020/09/29 Javascript
layer弹出层中H5播放器全屏出错的解决方法
2017/02/21 Javascript
基于Vue实现timepicker
2017/04/25 Javascript
vue2.0之多页面的开发的示例
2018/01/30 Javascript
Angular 如何使用第三方库的方法
2018/04/18 Javascript
NodeJS加密解密及node-rsa加密解密用法详解
2018/10/12 NodeJs
关于AOP在JS中的实现与应用详解
2019/05/06 Javascript
详解vue-cli中使用rem,vue自适应
2019/05/06 Javascript
layer父页获取弹出层输入框里面的值方法
2019/09/02 Javascript
vue页面切换项目实现转场动画的方法
2019/11/12 Javascript
python实现多线程采集的2个代码例子
2014/07/07 Python
python使用itchat库实现微信机器人(好友聊天、群聊天)
2018/01/04 Python
python 构造三维全零数组的方法
2018/11/12 Python
详解python的四种内置数据结构
2019/03/19 Python
Python字符串的修改方法实例
2019/12/19 Python
Tensorflow与Keras自适应使用显存方式
2020/06/22 Python
使用Python获取爱奇艺电视剧弹幕数据的示例代码
2021/01/12 Python
美国批发零售网站:GearXS
2016/07/26 全球购物
YBF Beauty官网:美丽挚友,美国知名彩妆品牌
2020/11/22 全球购物
linux面试题参考答案(5)
2014/09/01 面试题
《颐和园》教学反思
2014/02/26 职场文书
元旦获奖感言
2014/03/08 职场文书
慈善献爱心倡议书
2015/04/27 职场文书
六一儿童节园长致辞
2015/07/31 职场文书
大学生团支书竞选稿
2015/11/21 职场文书
2019年共青团工作条例最新版
2019/11/12 职场文书