详解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追加元素到列表的方法
Jul 28 Python
Python利用matplotlib生成图片背景及图例透明的效果
Apr 27 Python
Python数据可视化正态分布简单分析及实现代码
Dec 04 Python
Python rstrip()方法实例详解
Nov 11 Python
python版DDOS攻击脚本
Jun 12 Python
python创建n行m列数组示例
Dec 02 Python
django框架基于queryset和双下划线的跨表查询操作详解
Dec 11 Python
python3连接mysql获取ansible动态inventory脚本
Jan 19 Python
Python Scrapy框架第一个入门程序示例
Feb 05 Python
如何通过Python3和ssl实现加密通信功能
May 09 Python
Python+Dlib+Opencv实现人脸采集并表情判别功能的代码
Jul 01 Python
Python批量解压&压缩文件夹的示例代码
Apr 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
哪吒敖丙传:新人物二哥敖乙出场 小敖丙奶气十足
2020/03/08 国漫
虹吸式咖啡探讨–研磨
2021/03/03 冲泡冲煮
两个强悍的php 图像处理类1
2009/06/15 PHP
php 连接mssql数据库 初学php笔记
2010/03/01 PHP
php Xdebug 调试扩展的安装与使用.
2010/03/13 PHP
php操作redis缓存方法分享
2015/06/03 PHP
php实现简易计算器
2020/08/28 PHP
表单提交时自动复制内容到剪贴板的js代码
2007/03/16 Javascript
javascript json 新手入门文档
2009/12/03 Javascript
用jquery ajax获取网站Alexa排名的代码
2009/12/12 Javascript
jQuery AnythingSlider滑动效果插件
2010/02/07 Javascript
event.X和event.clientX的区别分析
2011/10/06 Javascript
EasyUI中的tree用法介绍
2011/11/01 Javascript
JS实现重新加载当前页面
2016/11/29 Javascript
URL中“#” “?” &“”号的作用浅析
2017/02/04 Javascript
Bootstrap轮播图学习使用
2017/02/10 Javascript
简单实现AngularJS轮播图效果
2020/04/10 Javascript
AngularJS实现的锚点楼层跳转功能示例
2018/01/02 Javascript
koa router 多文件引入的方法示例
2019/05/22 Javascript
小程序如何自主实现拦截器的示例代码
2019/11/04 Javascript
[01:01:24]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第三局
2016/02/25 DOTA
在Python中使用HTMLParser解析HTML的教程
2015/04/29 Python
python matplotlib画图实例代码分享
2017/12/27 Python
Python使用matplotlib和pandas实现的画图操作【经典示例】
2018/06/13 Python
Python3多线程版TCP端口扫描器
2019/08/31 Python
python创建子类的方法分析
2019/11/28 Python
python selenium实现发送带附件的邮件代码实例
2019/12/10 Python
Python 数据分析之逐块读取文本的实现
2020/12/14 Python
英国最大的邮寄种子和植物公司:Thompson & Morgan
2017/09/21 全球购物
奥地利时尚、美容、玩具和家居之家:Kastner & Öhler
2020/04/26 全球购物
香港艺人陈冠希创办的潮流品牌:JUICESTORE
2021/03/04 全球购物
人力资源管理专业应届生求职信
2014/04/24 职场文书
保护黄河倡议书
2014/05/16 职场文书
汽车4S店销售经理岗位职责
2015/04/02 职场文书
创业计划书之都市休闲农庄
2019/12/28 职场文书
再次探讨go实现无限 buffer 的 channel方法
2021/06/13 Golang