详解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的几条建议分享
Feb 10 Python
Python制作简单的网页爬虫
Nov 22 Python
在Python的Flask中使用WTForms表单框架的基础教程
Jun 07 Python
Python多层嵌套list的递归处理方法(推荐)
Jun 08 Python
Django实现学生管理系统
Feb 26 Python
pytorch构建多模型实例
Jan 15 Python
python 遗传算法求函数极值的实现代码
Feb 11 Python
python实现银行实战系统
Feb 26 Python
python检查目录文件权限并修改目录文件权限的操作
Mar 11 Python
基于Python爬取51cto博客页面信息过程解析
Aug 25 Python
GitHub上值得推荐的8个python 项目
Oct 30 Python
粗暴解决CUDA out of memory的问题
May 22 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/04 星际争霸
如何对PHP程序中的常见漏洞进行攻击
2006/10/09 PHP
关于时间计算的结总
2006/12/06 PHP
PHP处理会话函数大总结
2015/08/05 PHP
php下载远程大文件(获取远程文件大小)的实例
2017/06/17 PHP
Laravel框架控制器的request与response用法示例
2019/09/30 PHP
IE中直接运行显示当前网页中的图片 推荐
2006/08/31 Javascript
js Object2String方便查看js对象内容
2014/11/24 Javascript
深入理解JavaScript系列(21):S.O.L.I.D五大原则之接口隔离原则ISP详解
2015/03/05 Javascript
JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法
2015/04/25 Javascript
Highcharts学习之数据列
2016/08/03 Javascript
详细总结Javascript中的焦点管理
2016/09/17 Javascript
记一次webapck4 配置文件无效的解决历程
2018/09/19 Javascript
在Python中使用pngquant压缩png图片的教程
2015/04/09 Python
Python函数的周期性执行实现方法
2016/08/13 Python
Python实现1-9数组形成的结果为100的所有运算式的示例
2017/11/03 Python
Python使用matplotlib模块绘制图像并设置标题与坐标轴等信息示例
2018/05/04 Python
Python(Django)项目与Apache的管理交互的方法
2018/05/16 Python
Python闭包执行时值的传递方式实例分析
2018/06/04 Python
Python中Numpy包的安装与使用方法简明教程
2018/07/03 Python
python pands实现execl转csv 并修改csv指定列的方法
2018/12/12 Python
python监控进程状态,记录重启时间及进程号的实例
2019/07/15 Python
Python调用shell cmd方法代码示例解析
2020/06/18 Python
css3 中实现炫酷的loading效果
2019/04/26 HTML / CSS
详解html5 shiv.js和respond.min.js
2018/01/24 HTML / CSS
材料物理专业大学毕业生求职信
2013/10/15 职场文书
英语自荐信范文
2013/12/11 职场文书
关于工资低的辞职信
2014/01/14 职场文书
社会实践感言
2014/01/25 职场文书
母婴店促销方案
2014/03/05 职场文书
新郎新娘答谢词
2015/01/04 职场文书
医院合作意向书范本
2015/05/08 职场文书
党小组意见范文
2015/06/08 职场文书
会议主持词结束语
2015/07/03 职场文书
一篇文章了解正则表达式的替换技巧
2022/02/24 Javascript
CSS link与@import的区别和用法解析
2023/05/07 HTML / CSS