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中的装饰器的用法
Apr 24 Python
Python探索之ModelForm代码详解
Oct 26 Python
PyQt5主窗口动态加载Widget实例代码
Feb 07 Python
python解决js文件utf-8编码乱码问题(推荐)
May 02 Python
在Python中调用Ping命令,批量IP的方法
Jan 26 Python
华为2019校招笔试题之处理字符串(python版)
Jun 25 Python
Python生成六万个随机,唯一的8位数字和数字组成的随机字符串实例
Mar 03 Python
win10下python3.8的PIL库安装过程
Jun 08 Python
通过自学python能找到工作吗
Jun 21 Python
使用Dajngo 通过代码添加xadmin用户和权限(组)
Jul 03 Python
python RSA加密的示例
Dec 09 Python
python 指定源路径来解决import问题的操作
Mar 04 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 获取百度的热词数据的代码
2012/02/18 PHP
实例讲解PHP表单处理
2019/02/15 PHP
让您的菜单不离网站
2006/10/03 Javascript
[原创]保存的js无法执行的解决办法
2007/02/25 Javascript
Javascript延迟执行实现方法(setTimeout)
2010/12/30 Javascript
异步加载script的代码
2011/01/12 Javascript
jQuery级联操作绑定事件实例
2014/09/02 Javascript
jquery单行文字向上滚动效果的实现代码
2014/09/05 Javascript
jQuery获得document和window对象宽度和高度的方法
2015/03/25 Javascript
黑帽seo劫持程序,js劫持搜索引擎代码
2015/09/15 Javascript
JavaScript 随机验证码的生成实例代码
2016/09/22 Javascript
JavaScript利用正则表达式替换字符串中的内容
2016/12/12 Javascript
Extjs让combobox写起来简洁又漂亮
2017/01/05 Javascript
JavaScript实现按键精灵的原理分析
2017/02/21 Javascript
移动端触摸滑动插件swiper使用方法详解
2017/08/11 Javascript
Vue中的无限加载vue-infinite-loading的方法
2018/04/08 Javascript
浅析Vue 生命周期
2018/06/21 Javascript
nodejs之koa2请求示例(GET,POST)
2018/08/07 NodeJs
Vue 自定义标签的src属性不能使用相对路径的解决
2019/09/17 Javascript
HTML+JS实现“代码雨”效果源码(黑客帝国文字下落效果)
2020/03/17 Javascript
vue使用exif获取图片经纬度的示例代码
2020/12/11 Vue.js
JavaScript WeakMap使用详解
2021/02/05 Javascript
浅谈python爬虫使用Selenium模拟浏览器行为
2018/02/23 Python
基于python进行桶排序与基数排序的总结
2018/05/29 Python
wxpython多线程防假死与线程间传递消息实例详解
2019/12/13 Python
python由已知数组快速生成新数组的方法
2020/04/08 Python
TUMI马来西亚官方网站:国际领先的高品质商旅箱包品牌
2018/04/26 全球购物
竞聘医务工作人员的自我评价分享
2013/11/04 职场文书
怎么写有吸引力的自荐信
2013/11/17 职场文书
2014年文艺部工作总结
2014/11/17 职场文书
教师廉洁自律个人总结
2015/02/10 职场文书
保研推荐信格式
2015/03/25 职场文书
2016高考冲刺决心书
2015/09/23 职场文书
2016年七夕爱情寄语
2015/12/04 职场文书
vue3中的组件间通信
2021/03/31 Vue.js
JVM的类加载器和双亲委派模式你了解吗
2022/03/13 Java/Android