详解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 相关文章推荐
详解Python中的__init__和__new__
Mar 12 Python
Python re模块介绍
Nov 30 Python
浅谈用Python实现一个大数据搜索引擎
Nov 28 Python
tensorflow 获取模型所有参数总和数量的方法
Jun 14 Python
Python 脚本获取ES 存储容量的实例
Dec 27 Python
Python一键安装全部依赖包的方法
Aug 12 Python
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
Oct 16 Python
使用python代码进行身份证号校验的实现示例
Nov 21 Python
python使用itchat模块给心爱的人每天发天气预报
Nov 25 Python
Pandas 解决dataframe的一列进行向下顺移问题
Dec 27 Python
浅谈spring boot 集成 log4j 解决与logback冲突的问题
Feb 20 Python
python如何利用cv2模块读取显示保存图片
Jun 04 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
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
2016/03/07 PHP
thinkphp分页实现效果
2016/10/13 PHP
PHP上传Excel文件导入数据到MySQL数据库示例
2016/10/25 PHP
跟随鼠标旋转的文字
2006/11/30 Javascript
JS实现的省份级联实例代码
2013/06/24 Javascript
Javascript仿PHP $_GET获取URL中的参数
2014/05/12 Javascript
js获取当前页面的url网址信息
2014/06/12 Javascript
JavaScript中反正弦函数Math.asin()的使用简介
2015/06/14 Javascript
如何实现移动端浏览器不显示 pc 端的广告
2015/10/15 Javascript
jQuery控制frames及frame页面JS的方法
2016/03/08 Javascript
node.js使用cluster实现多进程
2016/03/17 Javascript
jQuery如何跳转到另一个网页 就这么简单
2016/12/28 Javascript
jQuery编写textarea输入字数限制代码
2017/03/23 jQuery
bootstrap table实现单击单元格可编辑功能
2017/03/28 Javascript
vue.js路由跳转详解
2017/08/28 Javascript
vue2.0设置proxyTable使用axios进行跨域请求的方法
2017/10/19 Javascript
Vue中使用vee-validate表单验证的方法
2018/05/09 Javascript
Layui数据表格之单元格编辑方式
2019/10/26 Javascript
python中lambda与def用法对比实例分析
2015/04/30 Python
python 编程之twisted详解及简单实例
2017/01/28 Python
安装Python的教程-Windows
2017/07/22 Python
python实现抽奖小程序
2020/04/15 Python
jenkins配置python脚本定时任务过程图解
2019/10/29 Python
pyqt5数据库使用详细教程(打包解决方案)
2020/03/25 Python
Html5 postMessage实现跨域消息传递
2016/03/11 HTML / CSS
HTML5拖放功能_动力节点Java学院整理
2017/07/13 HTML / CSS
Ratchet 模态框的实现
2020/08/19 HTML / CSS
酒吧员工的岗位职责
2013/11/26 职场文书
保护环境倡议书
2014/04/14 职场文书
教育专业毕业生推荐信
2014/07/10 职场文书
巾帼志愿者活动方案
2014/08/17 职场文书
2014向国旗敬礼网上签名活动总结
2014/09/27 职场文书
社保缴纳证明申请书
2014/11/03 职场文书
精神文明建设汇报材料
2014/12/24 职场文书
2015年网络管理员工作总结
2015/05/21 职场文书
安全守法证明
2015/06/23 职场文书