详解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列表去重方法
Jan 17 Python
详解用python实现简单的遗传算法
Jan 02 Python
python爬取拉勾网职位数据的方法
Jan 24 Python
详解Python 协程的详细用法使用和例子
Jun 15 Python
python生成密码字典的方法
Jul 06 Python
python斐波那契数列的计算方法
Sep 27 Python
python分数表示方式和写法
Jun 26 Python
Python实用工具FuckIt.py介绍
Jul 02 Python
django 控制页面跳转的例子
Aug 06 Python
Python中的list与tuple集合区别解析
Oct 12 Python
python2 对excel表格操作完整示例
Feb 23 Python
在Python 的线程中运行协程的方法
Feb 24 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 allow_url_include的应用和解释
2010/04/22 PHP
php smarty模板引擎的6个小技巧
2014/04/24 PHP
基于PHP常用文件函数和目录函数整理
2017/08/17 PHP
PHP字典树(Trie树)定义与实现方法示例
2017/10/09 PHP
PHP SESSION机制的理解与实例
2019/03/22 PHP
laravel框架如何设置公共头和公共尾
2019/10/22 PHP
通过代码实例解析PHP session工作原理
2020/12/11 PHP
非常不错的一个javascript 类
2006/11/07 Javascript
FF IE兼容性的修改小结
2009/09/02 Javascript
js 页面刷新location.reload和location.replace的区别小结
2009/12/24 Javascript
js确定对象类型方法
2012/03/30 Javascript
jQuery移动页面开发中的触摸事件与虚拟鼠标事件简介
2015/12/03 Javascript
基于JavaScript实现右键菜单和拖拽功能
2016/11/28 Javascript
详解基于webpack和vue.js搭建开发环境
2017/04/05 Javascript
深入理解vue.js中的v-if和v-show
2017/06/22 Javascript
jQuery实现打开网页自动弹出遮罩层或点击弹出遮罩层功能示例
2017/10/19 jQuery
vue.js element-ui validate中代码不执行问题解决方法
2017/12/18 Javascript
移动端如何用下拉刷新的方式实现上拉加载
2018/12/10 Javascript
js回溯法计算最佳旅行线路代码实例
2019/09/11 Javascript
layui use 定义js外部引用函数的方法
2019/09/26 Javascript
[52:57]2014 DOTA2国际邀请赛中国区预选赛 LGD-CDEC VS HGT
2014/05/21 DOTA
初学Python实用技巧两则
2014/08/29 Python
浅谈Python爬虫基本套路
2019/03/25 Python
python 上下文管理器及自定义原理解析
2019/11/19 Python
tensorflow 限制显存大小的实现
2020/02/03 Python
TensorFlow实现批量归一化操作的示例
2020/04/22 Python
如何在python中判断变量的类型
2020/07/29 Python
Booking.com美国:全球酒店预订网站
2017/04/18 全球购物
理肤泉英国官网:La Roche-Posay英国
2019/01/14 全球购物
英语国培研修感言
2014/02/13 职场文书
销售会计岗位职责
2014/03/15 职场文书
会计出纳岗位职责
2015/03/31 职场文书
小学中队长竞选稿
2015/11/20 职场文书
《女娲补天》教学反思
2016/02/20 职场文书
高中化学教学反思
2016/02/22 职场文书
JS + HTML 罗盘式时钟的实现
2021/05/21 Javascript