基于python实现名片管理系统


Posted in Python onNovember 30, 2018

本文实例为大家分享了python实现名片管理系统的具体代码,供大家参考,具体内容如下

主程序:

import cards_tools
# 无限循环,由用户主动决定什么时候退出
while True:
# TODO注释,用于标记需要去做的工作

 cards_tools.show_menu()

 action_str = raw_input("请选择希望执行的操作: ")
 print("你选择的操作是 %s" % action_str)
 # 1,2,3针对名片的操作
 if action_str in ["1","2","3"]:
  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("欢迎再次使用【名片管理系统】:")

  break
  # 如果在开发程序时,不希望立刻编写分支内部的代码
  # 可以使用pass关键字,表示一个占位符,能够保证程序的代码结构正确
  # 运行程序时,pass关键字不会执行任何操作
 else:
  print("输入错误,请重新输入:")

基于python实现名片管理系统

程序工具包:

card_list = []


def show_menu():
 """显示菜单"""
 print '*' * 50
 print '欢迎使用【名片管理系统】'
 print ''
 print '1.新增名片'
 print '2.显示全部'
 print '3.搜索名片'
 print '0.退出系统'
 print '*' * 50


def new_card():
 """新增名片"""
 print '-' * 50
 print '新增名片'
 # 1.提示用户输入名片的详细信息
 name_str = raw_input('请输入姓名:')
 phone_str = raw_input('请输入电话:')
 qq_str = raw_input('请输入QQ:')
 email_str = raw_input('请输入邮箱:')

 # 2.使用用户输入的信息建立一个名片字典
 card_dict = {'name_str': name_str,
     'phone_str': phone_str,
     'qq_str': qq_str,
     'email_str': email_str}

 # 3.将名片字典添加到列表中
 card_list.append(card_dict) # 把一个字典追加到一个列表中
 print card_list
 # 4.提示用户添加成功
 print '添加%s的名片成功' % name_str


def show_all():
 """显示所有名片"""
 print '-' * 50
 print '显示所有名片'

 # 判断是否存在名片记录,如果没有,提示用户并且返回
 if len(card_list) == 0:
  print '当前没有任何的名片记录,请使用新增功能添加名片'
  # return 可以返回一个函数的执行结果
  # 下方的代码不会被执行
  # 如果return后面没有任何的内容,表示会返回到调用函数的位置
  # 并且不返回任何结果
  return
 # 打印表头
 for name in ["姓名", "电话", "QQ", "邮箱"]:
  print name,
 print ''
 # 打印分隔线
 print '=' * 50

 # 遍历名片列表依次输出字典信息
 for card_dict in card_list:
  # print card_dict
  print '%s\t\t%s\t\t%s\t\t%s' % (card_dict['name_str'],
          card_dict['phone_str'],
          card_dict['qq_str'],
          card_dict['email_str'])


def search_card():
 """搜索名片"""
 print '-' * 50
 print '搜索名片'

 # 1.提示用户输入要搜索的姓名
 find_name = raw_input('请输入要搜索的姓名:')
 # 2.遍历名片列表,查询要搜索的姓名,如果没有找到,需要提示用户
 for card_dict in card_list:
  if card_dict['name_str'] == find_name:
   print '姓名 电话 QQ 邮箱'
   print '=' * 50
   print '%s %s %s %s' % (card_dict['name_str'],
         card_dict['phone_str'],
         card_dict['qq_str'],
         card_dict['email_str'])

   # TODO 针对找到的名片记录执行修改和删除的操作
   # 在我们的日常编写程序中,如果一个函数的代码太多,阅读和编写都是一件困难的事情,而在开发中,可以针对一个具体独立的功能来封装一个函数,由这个函数来处理具体的操作,这样就能保证每个函数中的代码清晰明了,功能明确
   deal_card(card_dict)
   break

  else:
   print '抱歉,没有找到%s' % find_name


def deal_card(find_dict):
 print find_dict
 action_str = raw_input('请选择要执行的操作 '
       '[1] 修改 [2] 删除 :')
 # 替换已经存在的键值对
 if action_str == '1':
  find_dict['name_str'] = input_card_info(find_dict['name_str'], '姓名:')
  find_dict['phone_str'] = input_card_info(find_dict['phone_str'], '电话:')
  find_dict['qq_str'] = input_card_info(find_dict['qq_str'], 'QQ:')
  find_dict['email_str'] = input_card_info(find_dict['email_str'], '邮箱:')

  print '修改名片成功!!!'
 elif action_str == '2':

  card_list.remove(find_dict)

  print '删除名片成功!!!'

def input_card_info(dict_value, tip_message):


 """

 :param dict_value:字典中原有的值
 :param tip_message:输入的提示文字
 :return:如果用户输入了内容,就返回内容,负责返回字典中原有的值
 """
 # 1.提示用户输入内容

 result_str = raw_input(tip_message)
 # 2.针对用户的输入进行判断,如果用户输入了内容,直接返回结果
 if len(result_str) > 0:
  return result_str
 # 3.如果用户没有输入内容,返回‘字典中原有的值'
 else:
  return dict_value

实现效果:

/usr/bin/python2.7 /home/kiosk/PycharmProjects/python/第四天/综合应用-名片管理系统/cards_main.py
**************************************************
欢迎使用【名片管理系统】

1.新增名片
2.显示全部
3.搜索名片
0.退出系统
**************************************************
请选择希望执行的操作: 2
你选择的操作是 2
--------------------------------------------------
显示所有名片
当前没有任何的名片记录,请使用新增功能添加名片
**************************************************
欢迎使用【名片管理系统】

1.新增名片
2.显示全部
3.搜索名片
0.退出系统
**************************************************
请选择希望执行的操作: 1
你选择的操作是 1
--------------------------------------------------
新增名片
请输入姓名:薛飞龙
请输入电话:123456
请输入QQ:456123
请输入邮箱:456123@qq.com
[{'qq_str': '456123', 'name_str': '\xe8\x96\x9b\xe9\xa3\x9e\xe9\xbe\x99', 'phone_str': '123456', 'email_str': '456123@qq.com'}]
添加薛飞龙的名片成功
**************************************************
欢迎使用【名片管理系统】

1.新增名片
2.显示全部
3.搜索名片
0.退出系统
**************************************************
请选择希望执行的操作: 3
你选择的操作是 3
--------------------------------------------------
搜索名片
请输入要搜索的姓名:薛飞龙
姓名 电话 QQ 邮箱
==================================================
薛飞龙 123456 456123 456123@qq.com
{'qq_str': '456123', 'name_str': '\xe8\x96\x9b\xe9\xa3\x9e\xe9\xbe\x99', 'phone_str': '123456', 'email_str': '456123@qq.com'}
请选择要执行的操作 [1] 修改 [2] 删除 :1
姓名:项媛媛
电话:
QQ:
邮箱:
修改名片成功!!!
**************************************************
欢迎使用【名片管理系统】

1.新增名片
2.显示全部
3.搜索名片
0.退出系统
**************************************************
请选择希望执行的操作: 2
你选择的操作是 2
--------------------------------------------------
显示所有名片
姓名 电话 QQ 邮箱 
==================================================
项媛媛  123456  456123  456123@qq.com
**************************************************
欢迎使用【名片管理系统】

1.新增名片
2.显示全部
3.搜索名片
0.退出系统
**************************************************
请选择希望执行的操作: 0
你选择的操作是 0
欢迎再次使用【名片管理系统】:

基于python实现名片管理系统

更多学习资料请关注专题《管理系统开发》。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python采用getopt解析命令行输入参数实例
Sep 30 Python
Python实现二分法算法实例
Feb 02 Python
python黑魔法之编码转换
Jan 25 Python
python抓取网页中链接的静态图片
Jan 29 Python
python实现字符串和字典的转换
Sep 29 Python
pycharm执行python时,填写参数的方法
Oct 29 Python
python 实现调用子文件下的模块方法
Dec 07 Python
Django之Mode的外键自关联和引用未定义的Model方法
Dec 15 Python
Python字符编码转码之GBK,UTF8互转
Feb 09 Python
Python实现企业微信机器人每天定时发消息实例
Feb 25 Python
通过自学python能找到工作吗
Jun 21 Python
Matplotlib绘制混淆矩阵的实现
May 27 Python
django小技巧之html模板中调用对象属性或对象的方法
Nov 30 #Python
PyCharm鼠标右键不显示Run unittest的解决方法
Nov 30 #Python
python实现简单名片管理系统
Nov 30 #Python
python3学生名片管理v2.0版
Nov 29 #Python
python实现名片管理系统
Nov 29 #Python
Python中利用aiohttp制作异步爬虫及简单应用
Nov 29 #Python
Python中logging.NullHandler 的使用教程
Nov 29 #Python
You might like
下拉列表多级联动dropDownList示例代码
2013/06/27 PHP
php文件操作相关类实例
2015/06/18 PHP
什么是OneThink oneThink后台添加插件步骤
2016/04/13 PHP
PHP基于简单递归函数求一个数阶乘的方法示例
2017/04/26 PHP
PHP删除数组中指定下标的元素方法
2018/02/03 PHP
PHP迭代器和生成器用法实例分析
2019/09/28 PHP
浅谈PHP中的那些魔术常量
2020/12/02 PHP
图片上传即时显示缩略图的js代码
2009/05/27 Javascript
offsetParent 算法分析
2010/04/05 Javascript
简单的JavaScript互斥锁分享
2014/02/02 Javascript
input输入框鼠标焦点提示信息
2015/03/17 Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
2015/06/05 Javascript
javascript框架设计之种子模块
2015/06/23 Javascript
jquery+css3实现网页背景花瓣随机飘落特效
2015/08/17 Javascript
每天一篇javascript学习小结(RegExp对象)
2015/11/17 Javascript
jquery 点击元素后,滚动条滚动至该元素位置的方法
2016/08/05 Javascript
Thinkphp5微信小程序获取用户信息接口的实例详解
2017/09/26 Javascript
微信小程序实现折叠与展开文章功能
2018/06/12 Javascript
vue中keep-alive,include的缓存问题
2019/11/26 Javascript
vue-iview动态新增和删除的方法
2020/06/17 Javascript
Python实现身份证号码解析
2015/09/01 Python
Pycharm学习教程(7)虚拟机VM的配置教程
2017/05/04 Python
Python 和 JS 有哪些相同之处
2017/11/23 Python
python正向最大匹配分词和逆向最大匹配分词的实例
2018/11/14 Python
如何使用Python实现斐波那契数列
2019/07/02 Python
python urllib爬虫模块使用解析
2019/09/05 Python
树莓派升级python的具体步骤
2020/07/05 Python
python环境搭建和pycharm的安装配置及汉化详细教程(零基础小白版)
2020/08/19 Python
浅谈Python __init__.py的作用
2020/10/28 Python
python 爬取百度文库并下载(免费文章限定)
2020/12/04 Python
台湾专柜女包:KINAZ
2019/12/26 全球购物
laravel使用redis队列实例讲解
2021/03/23 PHP
应聘编辑自荐信范文
2014/03/12 职场文书
2016七夕情人节寄语
2015/12/04 职场文书
导游词之南迦巴瓦峰
2019/11/19 职场文书
Spring Boot项目如何优雅实现Excel导入与导出功能
2022/06/10 Java/Android