建立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文件:

用python做名片_Linux下python制作名片示例相关推荐

  1. linux下python退出命令_Linux 下 Python按任意键退出方法

    某天在群内有同学问到,在python下我用input或者raw_input都得输入完后回车才能获取到输入的值,那如何实现任意键退出暂停等功能呢,我当时也没有多想,因为接触python时间也不算长,主要 ...

  2. python 命名管道_Linux 下 Python 读取命名管道的疑惑

    先说需求: 文件系统里已经有一个命名管道(FIFO),偶尔有其它程序对其进行写入,需要将这些写入由 Python 程序进行读取,一次读一行内容. 我的最初想法是程序不断地读取FIFO(f.readli ...

  3. linux的python开发环境_linux下python开发环境之一——安装python

    第二种是压缩比较好的,在linux中用bzip2压缩的文件比较高,文件名一般为*.tar.bz2, linux中下载安装的源码文件一般习惯放在/usr/local/src/中,src是source的缩 ...

  4. linux下载python的地址_Linux下Python获取IP地址的代码

    <lnmp一键安装包>中需要获取ip地址,有2种情况:如果服务器只有私网地址没有公网地址,这个时候获取的IP(即私网地址)不能用来判断服务器的位置,于是取其网关地址用来判断服务器在国内还是 ...

  5. linux python2.7安装教程_Linux下python升级至2.7步骤

    首先下载源tar包 可利用linux自带下载工具wget下载,如下所示: 下载完成后到下载目录下,解压 1 tar -zxvf Python-2.7.3.tgz 2 进入解压缩后的文件夹 1 cd P ...

  6. python脚本自动运行失败_Linux下Python脚本自启动和定时启动的详细步骤

    一.Python开机自动运行 假如Python自启动脚本为 auto.py .那么用root权限编辑以下文件: sudo vim /etc/rc.local 如果没有 rc.local 请看 这篇文章 ...

  7. linuxpython拍照_linux下python抓屏实现方法 -电脑资料

    作者:zevolo 字体:[增加 减小] 类型:转载 这篇文章主要介绍了linux下python抓屏实现方法,涉及Python操作屏幕截取的相关技巧,需要的朋友可以参考下 本文实例讲述了linux下p ...

  8. linux开机自启动python脚本_Linux下Python脚本自启动和定时启动的详细步骤

    一.Python开机自动运行 假如Python自启动脚本为 auto.py .那么用root权限编辑以下文件: sudo vim /etc/rc.local 如果没有 rc.local 请看 这篇文章 ...

  9. python程序开机自启动_Linux下Python脚本自启动和定时启动的详细步骤

    一.Python开机自动运行 假如Python自启动脚本为 auto.py .那么用root权限编辑以下文件: sudo vim /etc/rc.local 如果没有 rc.local 请看 这篇文章 ...

最新文章

  1. 神经网络版的GTA5火了,网友:好像AI的梦境
  2. How to find unit test class by code
  3. mysql怎么创建自动作业_mysql 让一个存储过程定时作业的代码
  4. 转JS总结1--(CSS书写规范和正则表达式)
  5. 如何快速实现 Wordpress 博客域名更换?
  6. docker 中不能用vim编辑文件
  7. 【机器学习】逻辑回归—良/恶性乳腺癌肿瘤预测
  8. js符号输入不可用_JS 控制非法字符的输入代码
  9. PHP实现调用淘宝SDK开放接口返回天猫或淘宝商品详情
  10. Emacs进阶之使用Mepla插件库及有道翻译安装
  11. 微信小程序使用iconfont在线icon
  12. item_search_pro - 高级关键字搜索淘宝商品 API
  13. 计算机绘图CAD实训指导,【精品】CAD计算机绘图实习指导书
  14. Matlab分号的使用
  15. Mac(M1)安装VMware虚拟机及Linux系统
  16. admob 服务器验证_Admob广告植入过程中遇到的错误汇总
  17. Python实现人脸识别检测,对主播进行颜值排行
  18. Civil3D 2018-03 曲面创建
  19. 微信小程序8-云函数
  20. PR软件——音频变音(机器音)

热门文章

  1. 三分钟搞定dbeaver企业版
  2. Cesium空间分析-填挖方计算(地形、模型通用)
  3. python 幸运数代码
  4. 常用数据库有哪些(附带数据库排名)?
  5. 金融系统性风险的网络模型
  6. git 禁止分支提交
  7. Anemometer适应新版pt-query-digest需要的调整
  8. u2硬盘测试软件,Buffalo HD-PET320U2移动硬盘检测报告
  9. 一份OA的数据库设计
  10. 【乐逍遥网站设计】网站建设如何让网站设计更加合理化?