python名片管理系统:名片工具类

# 记录所有名片的列表
card_list = []


def show_menu():
    """
    显示菜单
    :return:
    """
    print("*" * 50)
    print("欢迎使用【名片管理系统】V 1.0")
    print()
    print("1. 新增名片")
    print("2. 显示全部")
    print("3. 查询名片")
    print()
    print("0. 退出系统")
    print("*" * 50)


def new_card():
    """
    新增名片
    :return:
    """
    print("-" * 50)
    print("新增名片")
    # 1.提示用户输入名片的详细信息
    name = input("请输入姓名:")
    phone = input("请输入电话:")
    qq = input("请输入qq:")
    email = input("请输入邮箱:")

    # 2.使用用户输入的信息建立一个名片字典
    card_dict = {"name": name,
                 "phone": phone,
                 "qq": qq,
                 "email": email}
    # 3.将名片字典添加到列表中
    card_list.append(card_dict)

    print(card_list)

    print("添加【%s】的名片成功" % name)


def show_all():
    """
    显示所有名片
    :return:
    """
    print("-" * 50)
    print("显示所有名片")

    # 列表为空,给出提示并返回
    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("%s\t\t%s\t\t%s\t\t%s\t\t" % (
            card_dict["name"],
            card_dict["phone"],
            card_dict["qq"],
            card_dict["email"]
        ))


def search_card():
    """
    查找名片
    :return:
    """
    print("-" * 50)
    print("查找名片")
    # 1.提示用户输入要搜索的姓名
    find_name = input("请输入要搜索的姓名:")
    # 2.遍历名片列表,查询要搜索的姓名,如果没有找到,需要提示用户
    for card_dict in card_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)


def deal_card(find_dict):
    """
    处理查找到的名片
    :param find_dict:查找到的名片
    """
    print(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"], "邮箱:")
        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:如果用户输入为空,则返回字典原有值;否则返回用户输入内容
    """
    # 获取用户输入
    result_str = input(tip_message)
    # 判断用户输入是否为空
    if len(result_str) > 0:
        # 不为空返回用户输入的字符串
        return result_str
    else:
        # 为空返回字典原有值
        return dict_value

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值