名片管理系统
  hp1ZPvtJvsa4 2023年11月05日 35 0
以前学习python时候敲的终端交互功能,分享下


cards_main.py
#! /usr/bin/python3

import cards_tools
#无限循环,由用户主动决定什么时候退出系统!
while True:

    #TODO() 显示功能菜单
    cards_tools.show_menu()

    action_str = input("请选择希望执行的操作:")
    print("你选择的操作是[%s]" % action_str)

    #1,2,3针对名片的操作
    if action_str in ["1","2","3"]:

        #新增名片
        if action_str == "1":
            cards_tools.new_card()
        #显示全部
        elif action_str == "2":
            cards_tools.show_all()
        #查询名片
        elif action_str == "3":
            cards_tools.search_card()

    #0退出系统
    elif action_str == "0":
        print("欢迎再次使用【名片管理系统】")
        break

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


cards_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": 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 下方的代码不会被执行
        #可以返回一个函数执行结果
        #如果retur后面没有任何的内容,表示会返回到调用函数的位置
        #并且不返回任何结果
        return

    #打印表头
    for name in ["姓名","电话","QQ","邮箱"] :
        print(name,end="\t\t")

    print("")

    #遍历名片列表依次输出字典信息
    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)
            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"]))

                #TODO 针对找打名片执行修改和删除的操作
                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: 如果用户输入了内容,就返回内容,否则返回原有的值
    """
    #1.提示用户输入内容
    result_str = input(tip_message)
    #2.针对用户的输入进行判断,如果用户输入了内容,直接返回结果
    if len(result_str) > 0:
        return result_str
    #3.如果用户没有输入内容,返回‘字典中原有的值’
    else:
        return dict_value
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  2Fnpj8K6xSCR   2024年05月17日   100   0   0 Python
  xKQN3Agd2ZMK   2024年05月17日   70   0   0 Python
  Ugrw6b9GgRUv   2024年05月17日   39   0   0 Python
hp1ZPvtJvsa4