详解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 相关文章推荐
TensorFlow 模型载入方法汇总(小结)
Jun 19 Python
numpy.std() 计算矩阵标准差的方法
Jul 11 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
Jul 30 Python
windows10下安装TensorFlow Object Detection API的步骤
Jun 13 Python
Python基于机器学习方法实现的电影推荐系统实例详解
Jun 25 Python
分享一个pycharm专业版安装的永久使用方法
Sep 24 Python
Django1.11配合uni-app发起微信支付的实现
Oct 12 Python
Python实现对adb命令封装
Mar 06 Python
Python中使用filter过滤列表的一个小技巧分享
May 02 Python
python属于跨平台语言码
Jun 09 Python
只用20行Python代码实现屏幕录制功能
Jun 02 Python
PYTHON InceptionV3模型的复现详解
May 06 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 zend 相对路径问题
2009/01/12 PHP
php学习之流程控制实现代码
2011/06/09 PHP
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
PHP实现求连续子数组最大和问题2种解决方法
2017/12/26 PHP
关于setInterval、setTimeout在jQuery中的使用注意事项
2011/09/28 Javascript
国外大牛IE版本检测!现在IE都到9了,IE检测代码
2012/01/04 Javascript
js网页版计算器的简单实现
2013/07/02 Javascript
jquery中focus()函数实现当对象获得焦点后自动把光标移到内容最后
2013/09/29 Javascript
Jquery方式获取iframe页面中的 Dom元素
2014/05/07 Javascript
javascript+HTML5 Canvas绘制转盘抽奖
2020/05/16 Javascript
Bootstrap表单布局样式源代码
2016/07/04 Javascript
AngularJs Injecting Services Into Controllers详解
2016/09/02 Javascript
详解如何用模块化的方式写vuejs
2017/12/16 Javascript
在移动端使用vue-router和keep-alive的方法示例
2018/12/02 Javascript
Python简单检测文本类型的2种方法【基于文件头及cchardet库】
2016/09/18 Python
使用Python生成XML的方法实例
2017/03/21 Python
基于Python的XSS测试工具XSStrike使用方法
2017/07/29 Python
Python实现文件内容批量追加的方法示例
2017/08/29 Python
详解如何使用Python编写vim插件
2017/11/28 Python
Odoo中如何生成唯一不重复的序列号详解
2018/02/10 Python
Python基于机器学习方法实现的电影推荐系统实例详解
2019/06/25 Python
对python中assert、isinstance的用法详解
2019/11/27 Python
Python用户自定义异常的实现
2020/12/25 Python
Python之Sklearn使用入门教程
2021/02/19 Python
医药大学生求职简历的自我评价
2013/10/17 职场文书
求职者简历中的自我评价
2013/10/20 职场文书
物流管理专业应届生求职信
2013/11/21 职场文书
年终晚会主持词
2014/03/25 职场文书
寄语是什么意思
2014/04/10 职场文书
教师产假请假条
2014/04/10 职场文书
诉前财产保全担保书
2014/05/20 职场文书
员工试用期自我鉴定范文
2014/09/15 职场文书
中韩经贸翻译专业大学生职业生涯规划范文
2014/09/18 职场文书
2014年工商所工作总结
2014/12/09 职场文书
社区义诊通知
2015/04/24 职场文书
Java 写一个简单的图书管理系统
2022/04/26 Java/Android