基于Python的名片管理系统

1.系统分析在这里插入图片描述

# 用户自主选择操作
while True:

    action_str = input("请选择希望执行的操作:")
    print("请选择的操作是[%s]"% action_str)
    # 1,2,3针对名片的操作
    if action_str in ["1","2","3"]:
        # 新增名片
        if action_str=="1":
            pass
        # 显示全部
        elif action_str=="2":
            pass
        # 查询名片
        elif action_str=="3":
            pass

    # 0 退出操作
    elif action_str == "0":
        print("欢迎再次使用——名片管理系统")
        break
        # 如果在开发程序时,不希望立即编写分支内部的代码
        # 可以使用pass关键字,表示一个占位符,能够保证程序的代码结构正确!
        # 程序运行时,pass关键字不会执行任何的操作!
        # pass

    # 其他内容输入错误,需要提示用户
    else:
        print("您输入的不正确,请重新选择:")

总结:
字符串判断

if action_str in ["1","2","3"]: 
if action_str =="1" or action ="2" or action = "3":

1,使用in 针对列表判断,避免使用or拼接复杂的逻辑条件。
2,没有使用int转换用户输入,可以避免一旦用户输入的不是数字,导致程序运行出错。
**pass:**是一个空语句,不做任何事情,一般用做占位语句。是为了保持程序结构的完整性,
**无限循环:**在开发软件时,如果不希望程序执行后,立即退出;可以在程序中增加一个无限循环;由用户决定退出程序的时机。
TODO注释:
在#后跟上TODO,用于标记需要去做的工作。

# TODO(Me作者或者邮件) 显示功能菜单

2.保存名片数据的结构
程序是用来处理数据的,而变量就是用来存储数据的。
使用字典记录每一张名片的详细信息。
使用列表统一记录所有的名片字典。
在这里插入图片描述
定义名片列表变量
在card_tools文件的顶部增加一个列表变量

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

注意:1.所有名片相关操作,都需要使用这个列表,所以应该定义在程序的顶部。
2.程序刚运行时,没有数据,所以是空列表。
3.项目如下:
card_main.py:

import card_tools
# 用户自主选择操作
while True:
    # TODO(Me) 显示功能菜单
    card_tools.show_menu()

    action_str = input("请选择希望执行的操作:")
    print("请选择的操作是[%s]"% action_str)
    # 1,2,3针对名片的操作
    if action_str in ["1","2","3"]:
        # 新增名片
        if action_str=="1":
            card_tools.new_card()

        # 显示全部
        elif action_str=="2":
            card_tools.show_card()

        # 查询名片
        elif action_str =="3":
            card_tools.search_card()


    # 0 退出操作
    elif action_str == "0":
        print("欢迎再次使用——名片管理系统")
        break
        # 如果在开发程序时,不希望立即编写分支内部的代码
        # 可以使用pass关键字,表示一个占位符,能够保证程序的代码结构正确!
        # 程序运行时,pass关键字不会执行任何的操作!
        # pass

    # 其他内容输入错误,需要提示用户
    else:
        print("您输入的不正确,请重新选择:")

card_tools.py:

card_list = []
def show_menu():
    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_str": email_str
    }
    # 3.将名片字典添加到列表中
    card_list.append(card_dict)
    print(card_list)
    # 4.提示用户添加成功
    print("添加%s名片成功" % name_str)


def show_card():
    """显示所有名片"""
    print("*" * 50)
    print("显示所有名片")

    #     判断是否存在名片记录,如果没有,提示用户并且返回
    #     if len(card_list) == 0:
    #         print("当前没有任何的名片记录,请使用新增功能添加名片!")
    #     return可以返回一个函数的执行结果;下方的代码不会被执行
    #     如果return后面没有任何的内容,表示会返回到调用函数的位置
    #     并且不返回任何的结果
    #     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_str"]))


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\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_str"]))
            # 针对找到的名片记录执行修改和删除的操作
            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_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 = input(tip_message)

    # 2.针对用户的输入进行判断,如果用户输入了内容,直接返回结果
    if len(result_str) > 0:
        return result_str
    # 3.如果用户没有输入内容,返回‘字典中原有的值’字典中原有的值‘
    else:
        return dict_value

在终端运行:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python名片管理系统的重要意义在于它提供了一个方便、高效和智能的解决方案来管理和整理名片信息。具体来说,它的重要意义表现在以下几个方面: 首先,Python名片管理系统能够实现名片信息的集中存储和管理。在传统的纸质名片管理中,人们可能需要花费大量的时间和精力去整理和查找名片。而有了这个系统,我们可以将所有的名片信息集中存储在一个数据库中,通过简单的搜索和排序功能,快速找到所需名片的信息,提高了工作效率。 其次,Python名片管理系统可以极大地减少人工操作的错误率。传统的名片管理往往容易出现人为疏忽或者错误录入信息的问题。而这个自动化系统通过预设字段和自动识别算法,可以有效地保证名片信息的准确性和一致性,避免了人为因素带来的错误。 第三,Python名片管理系统还可以实现多样化的名片信息展示和功能定制。用户可以根据自己的需求自定义名片的外观和展示格式,使得名片更加个性化和专业化。同时,系统还可以支持一些附加功能,如快速分享名片、批量导出名片信息等,进一步提高了名片管理的便利性和灵活性。 最后,Python名片管理系统还具有良好的拓展性和扩展性。由于其代码开源,用户可以根据自己的需求和技术水平对系统进行二次开发和定制,使其更好地适应不同的工作场景和需求。这种开放性和可扩展性,极大地丰富了名片管理系统的应用领域和功能。 综上所述,Python名片管理系统的重要意义在于提高名片信息的管理效率、减少人工错误、增强个性化定制和拓展性。这样的系统不仅能够提升工作效率和专业形象,还有助于促进商务交流和合作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值