#记录所有的名片字典
card_list =[]defshow_menu():""""显示信息"""
print("*"*50)print("欢迎使用【名片管理系统】V1.0")print("")print("1. 新增名片")print("2. 显示全部")print("3. 搜索名片")print("")print("0. 退出系统")print("*"*50)defnew_card():"""新增名片"""
print("-"*50)print("功能:新增名片")#1. 提示用户输入名片详细信息
name_str = input("请输入姓名:")
phone_str= input("请输入电话号码:")
qq_str= input("请输入QQ:")
email_str= input("请输入邮箱:")#2. 使用用户的输入信息建立一个名片字典
card_dic = {"name":name_str,"phone":phone_str,"qq":qq_str,"email":email_str}#3. 将名片字添加到列表中
card_list.append(card_dic)#4, 提示用户添加成功
print("添加%s的名片成功" %name_str)defshow_all():"""显示所有名片"""
print("-" * 50)print("功能:显示所有名片")#判断是否存在名片记录
if len(card_list) ==0:print("当前没有名片记录,请使用功能1添加名片")#return下方的代码不会被执行
return
#打印表头
for name in ["姓名", "电话", "QQ", "邮箱"]:print(name, end="\t\t") #用制表符
#打印分割线
print("")print("="*50)#遍历变量列表,输出名片字典
for card_dict incard_list:print("%s\t\t%s\t\t%s\t\t%s\t\t" % (card_dict["name"],
card_dict["phone"],
card_dict["qq"],
card_dict["email"]))defsearch_card():"""搜索名片"""
print("-" * 50)print("功能:搜索名片")#1. 提示用户输入要搜索的名片
find_name = input("请输入要搜索的姓名")#2,遍历名片列表,查询姓名,如果没找到,要提示用户
for card_dict incard_list:if card_dict["name"] ==find_name:#打印表头
print("姓名\t\t电话\t\tQQ\t\t邮箱")#打印分割线
print("=" * 50)#输出名片字典
print("%s\t\t%s\t\t%s\t\t%s\t\t" % (card_dict["name"],
card_dict["phone"],
card_dict["qq"],
card_dict["email"]))#针对找到的名片记录执行修改和删除的操作
deal_card(card_dict)break
else:print("抱歉没有找到%s"%find_name)defdeal_card(find_dict):"""处理查找到的名片
:param find_dict: 查找到的名片"""action_str= input("请输入对名片的操作:1:修改/ 2:删除/ 0:返回上级菜单")if action_str == "1":
find_dict["name"] = input_card_info(find_dict["name"], "姓名[回车不修改]:")
find_dict["phone"] = input_card_info(find_dict["phone"], "电话[回车不修改]:")
find_dict["qq"] = input_card_info(find_dict["qq"], "QQ[回车不修改]:")
find_dict["email"] = input_card_info(find_dict["email"], "邮箱[回车不修改]:")elif action_str == "2":
card_list.remove(find_dict)print("删除名片成功!")definput_card_info(dic_value, tip_message):"""输入名片信息
:param dic_value: 字典中原有的值
:param tip_message: 输入的提示信息
:return: 如果用户输入了内容就返回内容,否则返回字典中原有的值"""
#1. 提示用户输入内容
result_str =input(tip_message)#2,针对用户的输入进行判断,如果输入了内容则直接返回结果
if len(result_str) >0 :returnresult_str#3. 如果用户什么也没有输入则返回”字典中原有的值“
else:return dic_value