python项目--简单名片管理系统(通熟易懂代码)

通过一周的自学python,结合老师的讲解,做出来一个简单的名片管理系统。接下来结合运行界面介绍下。
第一部分:系统界面
此处使用的Ubuntu系统演示
python项目--简单名片管理系统(通熟易懂代码)_第1张图片
一个很简单的系统,就3个功能,初学者哈,大家不要嫌弃,至少有个壳子你在往里面添加就可以,后续添加再更新。
1.新建功能
python项目--简单名片管理系统(通熟易懂代码)_第2张图片
操作成功回自己再次回到主界面
2.显示功能
python项目--简单名片管理系统(通熟易懂代码)_第3张图片
3.查询功能
查询功能应该算是这里面相对来说最难实现的
python项目--简单名片管理系统(通熟易懂代码)_第4张图片
接下来可以对查询的表进行修改或者删除,或者不改变
如果您需要改变,就输入,不需要就直接回车。
python项目--简单名片管理系统(通熟易懂代码)_第5张图片
删除这里就不演示了, 基本上这个简单的系统就是这个样子。
接下来直接上代码。

**cards_main.py**
import cards_tools


#无限循环,由用户操作决定啥时候退出系统
while True:

    #TODO 显示功能菜单

    action_str = input("请输入希望执行的操作:")

    print("你选择的操作是【%s】" % action_str)

    #1, 2, 3针对名片的操作
    if action_str in ["1", "2", "3"]:
    #如果不想立即编写分支内部

        #新增名片
        if action_str == "1":
            cards_tools.new_cards()


        #显示全部
        elif action_str == "2":
            cards_tools.show_all()


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


        # 可以使用pass占位符,保证代码结构正确
    #0 退出系统
    elif action_str == "0":
        print("欢迎再次使用【名片管理系统】")

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

**cards_tools.py**


#记录所有的名片字典
card_list = []

def show_menu():
    """显示菜单"""

    print("*" * 50)
    print("欢迎使用【名片管理系统】V 1.0")
    print("")
    print("1.新增名片")
    print("2.展示全部")
    print("3.搜索名片")
    print("")
    print("0.退出系统")
    return ("*" * 50)#
print(show_menu())


def new_cards():
    """新增名片"""

    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 的名片成功!" % name_str)


def show_all():


    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" % (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\tQQ\t\t邮箱")
            print("=" * 50)
            print("%s\t\t%s\t\t%s\t\t%s" % (card_dict["name"],
                                            card_dict["phone"],
                                            card_dict["QQ"],
                                            card_dict["email"]))
            #TODO 针对找到的名片记录进行删除和修改
            deal_card(card_dict)

            break

    else:
        print("抱歉,没有找到 %s" % find_name)


def deal_card(find_dict):

    #print("find_dict")

    action_str = input("请选择要执行的操作 "
                       "[1] 修改 [2] 删除 [0] 返回上级(不需要修改直接enter)")

    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:输入新的,就输出新的,没有输出原来的
    """
    #1.提示用户输入
    result_str = input(tip_message)

    #2.判断是否输入,输入返回结果
    if len(result_str) > 0:

        return result_str
    #3.没有输入,返回原值
    else:

        return dict_value

# def dele_card():
# #     """格式化表格
# #     """
# #     for card_dict in card_list:
# # 
# #         card_list.remove(card_dict)
# # 
# #         if len(card_list) > 0:
# # 
# #             dele_card()   #菜鸡增加的格式化代码

你可能感兴趣的:(python)