详解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实现查询IP地址所在地
Mar 29 Python
python中根据字符串调用函数的实现方法
Jun 12 Python
python 递归遍历文件夹,并打印满足条件的文件路径实例
Aug 30 Python
对python 匹配字符串开头和结尾的方法详解
Oct 27 Python
Python性能分析工具Profile使用实例
Nov 19 Python
opencv设置采集视频分辨率方式
Dec 10 Python
python错误调试及单元文档测试过程解析
Dec 19 Python
详解Django3中直接添加Websockets方式
Feb 12 Python
python如何实现复制目录到指定目录
Feb 13 Python
解决导入django_filters不成功问题No module named 'django_filter'
Jul 15 Python
基于python实现删除指定文件类型
Jul 21 Python
只需要100行Python代码就可以实现的贪吃蛇小游戏
May 27 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
dedecms中常见问题修改方法总结
2007/03/21 PHP
Zend studio for eclipse中使php可以调用mysql相关函数的设置方法
2008/10/13 PHP
《PHP编程最快明白》第八讲:php启发和小结
2010/11/01 PHP
php中strtotime函数用法详解
2014/11/15 PHP
PHP单例模式详细介绍
2015/07/01 PHP
PHP读取大文件的多种方法介绍
2016/04/04 PHP
JavaScript Eval 函数使用
2010/03/23 Javascript
JavaScript中创建类/对象的几种方法总结
2013/11/29 Javascript
node.js中的fs.readSync方法使用说明
2014/12/17 Javascript
jquery.validate使用时遇到的问题
2015/05/25 Javascript
vue中的计算属性的使用和vue实例的方法示例
2017/12/04 Javascript
JS基于封装函数实现的表格分页完整示例
2018/06/26 Javascript
详解angular如何调用HTML字符串的方法
2018/06/30 Javascript
关于element-ui的隐藏组件el-scrollbar的使用
2019/05/29 Javascript
Vue的click事件防抖和节流处理详解
2019/11/13 Javascript
vue项目或网页上实现文字转换成语音播放功能
2020/06/09 Javascript
JavaScript 获取滚动条位置并将页面滑动到锚点
2021/02/08 Javascript
[01:08:29]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第一场 1月9日
2021/03/11 DOTA
Python Web开发模板引擎优缺点总结
2014/05/06 Python
python 中split 和 strip的实例详解
2017/07/12 Python
python机器学习之神经网络(三)
2017/12/20 Python
Win8.1下安装Python3.6提示0x80240017错误的解决方法
2018/07/31 Python
对Pycharm创建py文件时自定义头部模板的方法详解
2019/02/12 Python
python二维码操作:对QRCode和MyQR入门详解
2019/06/24 Python
python使用原始套接字发送二层包(链路层帧)的方法
2019/07/22 Python
快速查找Python安装路径方法
2020/02/06 Python
Hotels.com香港酒店网:你的自由行酒店订房专家
2018/01/22 全球购物
SAZAC的动物连体衣和动物睡衣:Kigurumi Shop
2020/03/14 全球购物
公司股权转让协议书
2014/04/12 职场文书
我的中国梦演讲稿小学篇
2014/08/19 职场文书
领导走群众路线整改措施思想汇报
2014/10/12 职场文书
员工福利申请报告
2015/05/15 职场文书
教师节晚会主持词
2015/06/30 职场文书
2016党员入党决心书
2015/09/22 职场文书
MongoDB安装使用并实现Python操作数据库
2021/06/28 MongoDB
让JavaScript代码更加精简的方法技巧
2022/06/01 Javascript