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实例之wxpython中Frame使用方法
Jun 09 Python
python中Flask框架简单入门实例
Mar 21 Python
Python2.x和3.x下maketrans与translate函数使用上的不同
Apr 13 Python
python 打印直角三角形,等边三角形,菱形,正方形的代码
Nov 21 Python
opencv改变imshow窗口大小,窗口位置的方法
Apr 02 Python
Python读取excel中的图片完美解决方法
Jul 27 Python
python linecache 处理固定格式文本数据的方法
Jan 08 Python
Python操作rabbitMQ的示例代码
Mar 19 Python
python实现图片压缩代码实例
Aug 12 Python
python线程安全及多进程多线程实现方法详解
Sep 27 Python
如何使用Python对NetCDF数据做空间相关分析
Apr 21 Python
使用scrapy实现增量式爬取方式
Jun 21 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
用PHP实现小型站点广告管理(修正版)
2006/10/09 PHP
PHP+MySQL5.0中文乱码解决方法
2006/11/20 PHP
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
2011/06/30 PHP
最新版本PHP 7 vs HHVM 多角度比较
2016/02/14 PHP
微信JSSDK分享功能图文实例详解
2019/04/08 PHP
PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
2019/09/10 PHP
9个javascript语法高亮插件 推荐
2009/07/18 Javascript
js 实现打印网页中定义的部分内容的代码
2010/04/01 Javascript
判断用户是否在线的代码
2011/03/05 Javascript
jQuery链式操作如何实现以及为什么要用链式操作
2013/01/17 Javascript
分享一则JavaScript滚动条插件源码
2015/03/03 Javascript
js获取新浪天气接口的实现代码
2016/06/06 Javascript
基于原生JS实现图片裁剪
2016/08/01 Javascript
jQuery通过ajax方法获取json数据不执行success的原因及解决方法
2016/10/15 Javascript
详解Nodejs内存治理
2018/05/13 NodeJs
JQuery Ajax跨域调用和非跨域调用问题实例分析
2019/04/16 jQuery
微信小程序如何使用云开发
2019/05/17 Javascript
vue使用websocket的方法实例分析
2019/06/22 Javascript
vue中使用百度脑图kityminder-core二次开发的实现
2019/09/26 Javascript
Python中struct模块对字节流/二进制流的操作教程
2017/01/21 Python
python生成器,可迭代对象,迭代器区别和联系
2018/02/04 Python
PyTorch CNN实战之MNIST手写数字识别示例
2018/05/29 Python
python读取word文档,插入mysql数据库的示例代码
2018/11/07 Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
2019/07/11 Python
python编写计算器功能
2019/10/25 Python
Selenium webdriver添加cookie实现过程详解
2020/08/12 Python
会计电算化专业毕业生推荐信
2013/12/24 职场文书
给客户的道歉信
2014/01/13 职场文书
入股协议书
2014/04/14 职场文书
慈善晚会策划方案
2014/05/14 职场文书
群众路线专项整治方案
2014/10/27 职场文书
安阳殷墟导游词
2015/02/10 职场文书
PHP 对接美团大众点评团购券(门票)的开发步骤
2021/04/03 PHP
Vue + iView实现Excel上传功能的完整代码
2021/06/22 Vue.js
一小时迅速入门Mybatis之bind与多数据源支持 Java API
2021/09/15 Javascript
一文搞懂Golang 时间和日期相关函数
2021/12/06 Golang