#! /usr/bin/python3
import cards_toos
while True:
# 显示功能菜单
cards_toos.show_menu()
action_str = input("请选择希望执行的操作:")
print("您选择的操作是【%s】" % action_str)
# 1,2,3是针对名的操作
if action_str in ["1", "2", "3"]:
# 新增名片
if action_str == "1":
cards_toos.new_card()
# 显示名片
elif action_str == "2":
cards_toos.show_all()
# 查询名片
elif action_str == "3":
cards_toos.search_card()
# pass
# 0 是退出系统
elif action_str == "0":
print("欢迎再次使用,【名片管理系统】")
break
# pass
# 其他输入需要提示用户输入错误
else:
print("您输入的是【%s】,不正确!!!,请重新输入" % action_str)
# 记录所有名片字典
card_list = []
def show_menu():
"""显示菜单"""
# print("*" * 50)
# print("*" * 50)
print("*" * 50)
print("欢迎使用【菜单管理系统】V1.0")
print("")
print("1. 新建名片")
print("2. 显示全部")
print("3. 查询名片")
print("")
print("0. 退出系统")
print("*" * 50)
def new_card():
"""新增名片"""
print("-" * 50)
print("新增名片")
# 1.
# 提示用户依次输入名片信息
name_str = input("请输入姓名:")
phone_str = input("请输入电话:")
qq_str = input("请输入 QQ 号码:")
email_str = input("请输入邮箱:")
# 2.
# 将名片信息保存到一个字典
card_dict = {"name": name_str,
"phone": phone_str,
"qq": qq_str,
"email": email_str}
# 3.
# 将字典添加到名片列表
card_list.append(card_dict)
# print(card_list)
# 4.
# 提示名片添加完成
print("成功添加 %s 的名片" % card_dict["name"])
def show_all():
"""显示所有名片"""
print("-" * 50)
print("显示所有名片")
# 1. 判断是否有名片记录
if len(card_list) == 0:
print("提示:没有任何名片记录,请使用新增功能添加名片")
return
# 打印表头
for name in ["姓名", "电话", "QQ", "邮箱"]:
print(name, end="\t\t")
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"],
card_dict["phone"],
card_dict["qq"],
card_dict["email"]))
def search_card():
"""搜索名片"""
print("-" * 50)
print("搜索所有名片")
# 1. 提示用户要搜索的姓名
find_name = input("请输入要搜索的姓名:")
# 2. 根据用户输入的姓名遍历列表
for card_dict in card_list:
if card_dict["name"] == find_name:
print("姓名\t\t\t电话\t\t\tQQ\t\t\t邮箱")
print("-" * 40)
print("%s\t\t\t%s\t\t\t%s\t\t\t%s" % (
card_dict["name"],
card_dict["phone"],
card_dict["qq"],
card_dict["email"]))
print("-" * 40)
# 针对找到的字典进行后续操作:修改/删除
deal_card(card_dict)
break
else:
print("没有找到 %s" % find_name)
# 3. 搜索到指定的名片后,再执行后续的操作
def deal_card(find_dict):
"""操作搜索到的名片字典
:param find_dict:找到的名片字典
"""
# print(find_dict)
action_str = input("请选择要执行的操作 "
"[1] 修改 [2] 删除 [0] 返回上级菜单")
if action_str == "1":
# if action == "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"],"请输入邮件:")
print("%s 的名片修改成功" % find_dict["name"])
# print("修改")
elif action_str == "2":
# print("删除")
card_list.remove(find_dict)
print("删除成功")
def input_card_info(dict_value, tip_message):
"""输入名片信息
:param dict_value: 字典原有值
:param tip_message: 输入提示信息
:return: 如果输入,返回输入内容,否则返回字典原有值
"""
# 1. 提示用户输入内容
result_str = input(tip_message)
# 2. 针对用户的输入进行判断,如果用户输入了内容,直接返回结果
if len(result_str) > 0:
return result_str
# 3. 如果用户没有输入内容,返回 `字典中原有的值`
else:
return dict_value