名片管理系统
名片管理系统的基本功能:
(1)新增名片;
(2)显示所有名片;
(3)搜索指定名片,并做出相应的修改。
总共编写两个python文件。一个主文件(cards_main.py),构建出实现框架;还有一个具体实现的工具文件(cards_tool.py).在主文件中调用工具文件。
import card_tools
while True:
card_tools.show_menu()
action_str=raw_input('请选择你希望执行的操作:')
print '你选择的操作是%s'%action_str
if action_str in ["1","2","3"]:
if action_str == "1":
card_tools.new_card()
elif action_str == '2':
card_tools.show_all()
elif action_str == '3':
card_tools.search_card()
elif action_str == '0':
print '欢迎再次使用【名片管理系统】'
break
else:
print '输入错误,请重新输入:'
程序工具包:
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 '%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'])
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
实现效果:
/usr/bin/python2.7 /home/kiosk/PycharmProjects/python/复习4/test3.py
**************************************************
欢迎使用【名片管理系统】1.新增名片
2.显示全部
3.搜索名片
0.退出系统
**************************************************
请选择你希望执行的操作:1
你选择的操作是1
--------------------------------------------------
新增名片
请输入姓名:袁小茜
请输入电话:1335393939
请输入QQ:117383020
请输入邮箱:117383020@qq.com
[{'qq_str': '117383020', 'name_str': '\xe8\xa2\x81\xe5\xb0\x8f\xe8\x8c\x9c', 'phone_str': '1335393939', 'email_str': '117383020@qq.com'}]
添加袁小茜的名片成功
**************************************************
欢迎使用【名片管理系统】1.新增名片
2.显示全部
3.搜索名片
0.退出系统
**************************************************
请选择你希望执行的操作:3
你选择的操作是3
--------------------------------------------------
搜索名片
请输入要搜索的姓名:袁小茜
姓名 电话 QQ 邮箱
==================================================
袁小茜 1335393939 117383020 117383020@qq.com
{'qq_str': '117383020', 'name_str': '\xe8\xa2\x81\xe5\xb0\x8f\xe8\x8c\x9c', 'phone_str': '1335393939', 'email_str': '117383020@qq.com'}
请选择要执行的操作 [1] 修改 [2] 删除 :1
姓名:袁梦
电话:1335843894
QQ:4328437
邮箱:32717321@qq.com
修改名片成功
**************************************************
欢迎使用【名片管理系统】1.新增名片
2.显示全部
3.搜索名片
0.退出系统
**************************************************
请选择你希望执行的操作:2
你选择的操作是2
--------------------------------------------------
显示所有名片
姓名 电话 QQ 邮箱
==================================================
袁梦 1335843894 4328437 32717321@qq.com
**************************************************
欢迎使用【名片管理系统】1.新增名片
2.显示全部
3.搜索名片
0.退出系统
**************************************************
请选择你希望执行的操作:0
你选择的操作是0
欢迎再次使用【名片管理系统】