card_toos.py中的代码如下:
card_list = []
def show_menu():
'''显示主菜单'''
print("*" * 50)
print("欢迎进入【名片管理系统 v1.0】")
print("")
print("1、新建名片")
print("")
print("2、显示名片")
print("")
print("3、查询名片")
print("")
print("0、退出名片管理系统")
print("=" * 50)
print("")
def new_card():
'''新建名片'''
# 提示用户输入名片信息
name = input("请输入您的姓名:")
phone = input("请输入您的手机号码:")
email = input("请输入您的邮箱:")
#将用户输入的信息存放在字典中
card_dict = {"name":name,
"phone":phone,
"email":email}
print("*" * 50)
#print("姓名\t\t\t号码\t\t\t邮箱")
#将字典中存放的信息追加到列表中,追加后列表中存放了用户的信息,作为全员变量进行使用
card_list.append(card_dict)
#print(card_list)
print("成功添加名片 %s" % name)
print("*" * 50)
def show_all():
'''显示名片'''
print("-" * 50)
#判断名片内是否有信息,如果没有,则提示用户新增名片,并且直接返回
if len(card_list) == 0:
print("没有名片的相关信息,请新增名片")
return
#打印表头
for name in ["姓名","号码","邮箱"]:
print(name,end="\t\t\t")
print("")
#打印分割线
print("=" * 50)
#对用户输入在名片中的信息进行遍历,并且进行打印
for card_all in card_list:
print("%s\t\t\t%s\t\t\t%s" % (card_all["name"],
card_all["phone"],
card_all["email"]))
def card_search():
'''查询名片'''
#提示用户需要查找的名片信息
find_name = input("请输入您要查询的名片信息:")
print("")
#对名片信息进行遍历,对用户输入的姓名进行查找,如果用户输入的名称在名片中能找到,则查询对应的名片信息
for card_dict in card_list:
if card_dict["name"] == find_name:
print("姓名\t\t号码\t\t邮箱")
print("%s\t\t%s\t\t%s" % (card_dict["name"],
card_dict["phone"],
card_dict["email"]))
# TODO 对名片进行修改和删除的操作
deal_card(card_dict)
break
#如果没有查询到对应的信息,则需要提示用户
else:
print("没有找到您所查询到的信息")
#此函数的作用是对用户查询到的函数进行修改和删除的操作,当用户选择对应的操作时,处理不同的逻辑,如果用户选择修改,那直接在用户
#查询到的基础上进行修改。也就是find_name是关键。如果用户选择删除,那直接在列表中删除用户查询到的find_name值
def deal_card(find_name):
""" 处理名片信息
:param find_name: 对名片中的信息进行处理,首先find_name的值是card_dict传递过来的。所以find_name里面是存在名片信息的。
"""
result_str = input("请输入您需要进行的操作 1 修改 2 删除 0 返回上级")
if result_str == "1":
find_name["name"] = input_card_info(find_name["name"],"姓名:")
find_name["phone"] = input_card_info(find_name["phone"],"电话:")
find_name["email"] = input_card_info(find_name["email"],"邮箱:")
print("修改成功")
elif result_str == "2":
card_list.remove(find_name)
print("删除成功")
# 此函数的功能是
def input_card_info(dict_value,tip_message):
""" 输入名片信息
:param dict_value: 原有字典中的信息
:param tip_message: 输入的提示文字
:return:
"""
#提示用户输入的信息
result = input(tip_message)
#如果用户已经输入了信息,代表用户已经进行了修改,那直接返回修改的结果即可。否则直接返回字典中的信息即可。
if len(result) > 0:
return result
else:
return dict_value
cards_main.py中代码如下:
import card_tools
card_tools.show_menu()
while True:
action_str = input("请输入您需要的操作:")
if action_str in ["0","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.card_search()
elif action_str == "0":
print("欢迎再次使用名片管理系统")
break
else:
print("您输入的数字有误,请重新输入")