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 2.7.14安装图文教程
Apr 08 Python
Python 25行代码实现的RSA算法详解
Apr 10 Python
python3实现小球转动抽奖小游戏
Apr 15 Python
Python基本数据结构之字典类型dict用法分析
Jun 08 Python
python保留小数位的三种实现方法
Jan 07 Python
python匿名函数lambda原理及实例解析
Feb 07 Python
Django+python服务器部署与环境部署教程详解
Mar 30 Python
初学者学习Python好还是Java好
May 26 Python
python datetime时间格式的相互转换问题
Jun 11 Python
python 制作python包,封装成可用模块教程
Jul 13 Python
总结Pyinstaller的坑及终极解决方法(小结)
Sep 21 Python
python tkinter的消息框模块(messagebox,simpledialog)
Nov 07 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/11/25 PHP
PHP开源开发框架ZendFramework使用中常见问题说明及解决方案
2014/06/12 PHP
新浪SAE云平台下使用codeigniter的数据库配置
2014/06/12 PHP
php打印一个边长为N的实心和空心菱型的方法
2015/03/02 PHP
PHP中Session可能会引起并发问题
2015/06/26 PHP
Yii2搭建后台并实现rbac权限控制完整实例教程
2016/04/28 PHP
php微信开发之带参数二维码的使用
2016/08/03 PHP
详解Yii2 之 生成 URL 的方法
2017/06/16 PHP
PHP简单计算两个时间差的方法示例
2017/06/20 PHP
在IE和VB中支持png图片透明效果的实现方法(vb源码打包)
2011/04/01 Javascript
javaScript 删除字符串空格多种方法小结
2012/10/24 Javascript
jquery js 获取时间差、时间格式具体代码
2013/06/05 Javascript
js离开或刷新页面检测(且兼容FF,IE,Chrome)
2014/03/05 Javascript
yepnope.js使用详解及示例分享
2014/06/23 Javascript
node.js中的fs.unlink方法使用说明
2014/12/15 Javascript
jquery合并表格中相同文本的相邻单元格
2015/07/17 Javascript
javascript实现一个网页加载进度loading
2017/01/04 Javascript
canvas的神奇用法
2017/02/03 Javascript
vue resource post请求时遇到的坑
2017/10/19 Javascript
vue计算属性和监听器实例解析
2018/05/10 Javascript
jQuery实现html可联动的百分比进度条
2020/03/26 jQuery
[05:13]TI4 中国战队 机场出征!!
2014/07/07 DOTA
[10:34]DOTA2上海特级锦标赛全纪录
2016/03/25 DOTA
python算法学习之基数排序实例
2013/12/18 Python
python之模拟鼠标键盘动作具体实现
2013/12/30 Python
python获取局域网占带宽最大3个ip的方法
2015/07/09 Python
python交互式图形编程实例(二)
2017/11/17 Python
使用Python的Dataframe取两列时间值相差一年的所有行方法
2018/07/10 Python
python入门:argparse浅析 nargs='+'作用
2020/07/12 Python
QA工程师岗位职责
2013/11/20 职场文书
计算机通信专业推荐信
2014/02/22 职场文书
模具专业求职信
2014/06/26 职场文书
水利水电专业自荐信
2014/07/08 职场文书
golang 定时任务方面time.Sleep和time.Tick的优劣对比分析
2021/05/05 Golang
《游戏王:大师决斗》将推出新卡牌包4月4日上线
2022/03/31 其他游戏
vue自定义右键菜单之全局实现
2022/04/09 Vue.js