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安装mysql-python简明笔记(ubuntu环境)
Jun 25 Python
怎样使用Python脚本日志功能
Aug 14 Python
python音频处理用到的操作的示例代码
Oct 27 Python
python根据list重命名文件夹里的所有文件实例
Oct 25 Python
解决Python selenium get页面很慢时的问题
Jan 30 Python
Python绘图Matplotlib之坐标轴及刻度总结
Jun 28 Python
VSCode基础使用与VSCode调试python程序入门的图文教程
Mar 30 Python
python2和python3哪个使用率高
Jun 23 Python
一些关于python 装饰器的个人理解
Aug 31 Python
关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题
Nov 28 Python
python使用pygame创建精灵Sprite
Apr 06 Python
Python中的 No Module named ***问题及解决
Jul 23 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
40年前的这部特摄片恐龙特级克塞号80后的共同回忆
2020/03/08 日漫
PHP框架Laravel的小技巧两则
2015/02/10 PHP
关于PHP中字符串与多进制转换函数的实例代码
2016/11/03 PHP
Yii2框架自定义验证规则操作示例
2019/02/08 PHP
Javascript操纵Cookie实现购物车程序
2006/11/23 Javascript
javascript中的prototype属性使用说明(函数功能扩展)
2010/08/16 Javascript
jQuery EasyUI API 中文文档 可调整尺寸
2011/09/29 Javascript
jQuery渐变发光导航菜单的实例代码
2013/03/27 Javascript
NodeJS仿WebApi路由示例
2017/02/28 NodeJs
Vue拖拽组件开发实例详解
2018/05/11 Javascript
LayerClose弹窗关闭刷新方法
2018/08/17 Javascript
JavaScript基础之静态方法和实例方法分析
2018/12/26 Javascript
小程序中this.setData的使用和注意事项
2019/08/28 Javascript
如何实现iframe父子传参通信
2020/02/05 Javascript
解决vue watch数据的方法被调用了两次的问题
2020/11/07 Javascript
[02:43]DOTA2英雄基础教程 德鲁伊
2014/01/13 DOTA
pygame学习笔记(6):完成一个简单的游戏
2015/04/15 Python
python 通过类中一个方法获取另一个方法变量的实例
2019/01/22 Python
浅谈Python基础—判断和循环
2019/03/22 Python
Python动态语言与鸭子类型详解
2019/07/01 Python
django页面跳转问题及注意事项
2019/07/18 Python
python3 selenium自动化 frame表单嵌套的切换方法
2019/08/23 Python
python通过SSH登陆linux并操作的实现
2019/10/10 Python
解决Keras的自定义lambda层去reshape张量时model保存出错问题
2020/07/01 Python
Python优秀开源项目Rich源码解析的流程分析
2020/07/06 Python
基于python requests selenium爬取excel vba过程解析
2020/08/12 Python
CSS3绘制六边形的简单实现
2016/08/25 HTML / CSS
杭州-飞时达软件有限公司.net笔面试
2012/04/28 面试题
哈理工毕业生的求职信
2013/12/22 职场文书
培训心得体会
2013/12/29 职场文书
企业指导教师评语
2014/04/28 职场文书
优秀应届毕业生自荐书
2014/06/29 职场文书
促销活动总结模板
2014/07/01 职场文书
2015年教务工作总结
2015/05/23 职场文书
2016机关干部作风建设心得体会
2016/01/21 职场文书
《语言的突破》读后感3篇
2019/12/12 职场文书