Linux下python制作名片示例


Posted in Python onJuly 20, 2018

建立cards_main文件:

# _*_ coding:utf-8 _*_
"""
file: cards_main.py
date: 2018-07-18 19:47
author: jiong
desc:

"""
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("输入错误,请重新输入:")

建立cards_tools文件

# _*_ coding:utf-8 _*_
"""
file: cards_tools.py
date: 2018-07-18 19:47
author: jiong
desc:

"""
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

执行cards_mian文件:

Linux下python制作名片示例 

Linux下python制作名片示例 

Linux下python制作名片示例

Python 相关文章推荐
python爬虫教程之爬取百度贴吧并下载的示例
Mar 07 Python
分享给Python新手们的几道简单练习题
Sep 21 Python
python+matplotlib绘制3D条形图实例代码
Jan 17 Python
python的staticmethod与classmethod实现实例代码
Feb 11 Python
Python使用Dijkstra算法实现求解图中最短路径距离问题详解
May 16 Python
Python发展简史 Python来历
May 14 Python
Python2.7版os.path.isdir中文路径返回false的解决方法
Jun 21 Python
Python3 执行Linux Bash命令的方法
Jul 12 Python
python 单线程和异步协程工作方式解析
Sep 28 Python
python生成任意频率正弦波方式
Feb 25 Python
哈工大自然语言处理工具箱之ltp在windows10下的安装使用教程
May 07 Python
10个python爬虫入门基础代码实例 + 1个简单的python爬虫完整实例
Dec 16 Python
Python爬虫的两套解析方法和四种爬虫实现过程
Jul 20 #Python
使用python脚本实现查询火车票工具
Jul 19 #Python
Python 判断文件或目录是否存在的实例代码
Jul 19 #Python
Flask框架Jinjia模板常用语法总结
Jul 19 #Python
python一行sql太长折成多行并且有多个参数的方法
Jul 19 #Python
python代码过长的换行方法
Jul 19 #Python
Flask和Django框架中自定义模型类的表名、父类相关问题分析
Jul 19 #Python
You might like
我常用的几个类
2006/10/09 PHP
php.ini中的php-5.2.0配置指令详解
2008/03/27 PHP
ThinkPHP中的create方法与自动令牌验证实例教程
2014/08/22 PHP
php生成QRcode实例
2014/09/22 PHP
PHP互换两个变量值的方法(不用第三变量)
2016/11/14 PHP
老生常谈PHP面向对象之注册表模式
2017/05/26 PHP
Javascript 圆角div的实现代码
2009/10/15 Javascript
深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例
2014/08/04 Javascript
jQuery实现返回顶部功能适合不支持js的浏览器
2014/08/19 Javascript
基于jquery实现的仿优酷图片轮播特效代码
2016/01/13 Javascript
Hallo.js基于jQuery UI所见即所得的Web编辑器
2016/01/26 Javascript
Bootstrap Metronic完全响应式管理模板之菜单栏学习笔记
2016/07/08 Javascript
CentOS环境中MySQL修改root密码方法
2018/01/07 Javascript
Vue+Mock.js模拟登录和表格的增删改查功能
2018/07/26 Javascript
Angular 实现输入框中显示文章标签的实例代码
2018/11/07 Javascript
详解关于html,css,js三者的加载顺序问题
2019/04/10 Javascript
vue路由对不同界面进行传参及跳转的总结
2019/04/20 Javascript
vue-i18n结合Element-ui的配置方法
2019/05/20 Javascript
jquery制作的移动端购物车效果完整示例
2020/02/24 jQuery
微信小程序中使用 async/await的方法实例分析
2020/05/06 Javascript
Python读取图片EXIF信息类库介绍和使用实例
2014/07/10 Python
详解使用Python处理文件目录的相关方法
2015/10/16 Python
python解决方案:WindowsError: [Error 2]
2016/08/28 Python
python 捕获shell脚本的输出结果实例
2017/01/04 Python
python实现简单登陆流程的方法
2018/04/22 Python
pyqt弹出新对话框,以及关闭对话框获取数据的实例
2019/06/18 Python
Python基于Hypothesis测试库生成测试数据
2020/04/29 Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
2020/06/17 Python
Alpine安装Python3依赖出现的问题及解决方法
2020/12/25 Python
Linux的文件类型
2012/03/07 面试题
初中三年学生的学习自我评价
2013/11/13 职场文书
小学教学随笔感言
2014/02/26 职场文书
2014年社区居委会主任重阳节讲话稿
2014/09/25 职场文书
原料仓管员岗位职责
2015/04/01 职场文书
什么是创业计划书?什么是商业计划书?这里一一解答
2019/07/12 职场文书
Python爬取用户观影数据并分析用户与电影之间的隐藏信息!
2021/06/29 Python