详解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的Django框架结合jQuery实现AJAX购物车页面
Apr 11 Python
Python字符串拼接六种方法介绍
Dec 18 Python
django文档学习之applications使用详解
Jan 29 Python
浅谈Python 多进程默认不能共享全局变量的问题
Jan 11 Python
浅谈Python 敏感词过滤的实现
Aug 15 Python
Python使用Tkinter实现滚动抽奖器效果
Jan 06 Python
对tensorflow 中tile函数的使用详解
Feb 07 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
Mar 09 Python
pytorch 中的重要模块化接口nn.Module的使用
Apr 02 Python
基于nexus3配置Python仓库过程详解
Jun 15 Python
详解Flask前后端分离项目案例
Jul 24 Python
如何使用flask将模型部署为服务
May 13 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
星际争霸 Starcraft 秘技补丁
2020/03/14 星际争霸
php对大文件进行读取操作的实现代码
2013/01/23 PHP
ThinkPHP实现一键清除缓存方法
2014/06/26 PHP
PHP耦合设计模式实例分析
2018/08/08 PHP
php对mongodb的扩展(初识如故)
2012/11/11 Javascript
jquery制作LED 时钟特效
2015/02/01 Javascript
Javascript中arguments和arguments.callee的区别浅析
2015/04/24 Javascript
JS与jQ读取xml文件的方法
2015/12/08 Javascript
实例详解ECMAScript5中新增的Array方法
2016/04/05 Javascript
webpack4之SplitChunksPlugin使用指南
2018/06/12 Javascript
如何在JavaScript中优雅的提取循环内数据详解
2019/03/04 Javascript
vue的keep-alive用法技巧
2019/08/15 Javascript
jQuery事件模型默认行为执行顺序及trigger()与 triggerHandler()比较实例分析
2020/04/30 jQuery
js实现表格数据搜索
2020/08/09 Javascript
vue项目实现减少app.js和vender.js的体积操作
2020/11/12 Javascript
详解JavaScript原型与原型链
2020/11/16 Javascript
python分析网页上所有超链接的方法
2015/05/08 Python
Python中的数学运算操作符使用进阶
2016/06/20 Python
Python cookbook(数据结构与算法)实现对不原生支持比较操作的对象排序算法示例
2018/03/15 Python
Python实现的redis分布式锁功能示例
2018/05/29 Python
python中利用h5py模块读取h5文件中的主键方法
2018/06/05 Python
python 图像处理画一个正弦函数代码实例
2019/09/10 Python
Pyecharts地图显示不完成问题解决方案
2020/05/11 Python
Python图像处理之膨胀与腐蚀的操作
2021/02/07 Python
环境科学专业个人求职信
2013/09/26 职场文书
高分子材料与工程专业推荐信
2013/12/01 职场文书
药品促销活动方案
2014/02/14 职场文书
党的群众路线教育实践活动领导班子整改措施
2014/09/30 职场文书
2014年前台文员工作总结
2014/12/08 职场文书
委托公证书格式
2015/01/26 职场文书
满月酒邀请函
2015/01/30 职场文书
先进个人自荐书
2015/03/06 职场文书
MongoDB balancer的使用详解
2021/04/30 MongoDB
Python编程根据字典列表相同键的值进行合并
2021/10/05 Python
教你修复 Win11应用商店加载空白问题
2021/12/06 数码科技
Win11 25163.1010更新补丁KB5016904推送,测试服务验证管道(附更新修复汇总)
2022/07/23 数码科技