warningAAAA 发表于 2021-8-19 15:41

名片管理系统学习

```
import cards_tools
while True:

    # TODO(Dr_陈) 显示功能菜单
    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()

    elif action_str == "0":
      # 如果在开发程序时,不希望立刻编写分支内部的代码
      # 可以使用 pass 关键字,表示一个占位符,能够保证程序代码结构正确
      print("希望再次使用【名片管理系统】QAQ")
      break

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




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

def show_menu():

    """显示菜单"""
    print("*" * 50)
    print("欢迎使用【名片管理系统】v 1.0")
    print("1. 新增名片")
    print("2. 显示所有")
    print("3. 搜索名片\n")
    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_str": name_str,
               "phone_str": phone_str,
               "qq_str": qq_str,
               "email_str": email_str}

    # 3.将名片字典添加到列表中
    card_lsit.append(card_dict)

    # 4.提示用户添加成功
    print('添加"%s"的名片成功' % name_str)
def show_all():

    """显示所有名片"""
    print("-" * 50)
    print("显示所有名片")

    # 判断是否存在名片记录,如果没有,提示用户并且返回
    if len(card_lsit) == 0:

      print("当前没有任何名片记录,请使用新增名片功能")

      # 如果 return 后面没有任何的内容,表示会返回到调用函数的位置继续执行
      # 并且不会返回任何结果
      return

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

    # 打印分隔符
    print("")
    print("=" * 50)

    # 遍历名片列表依次输出字典信息
    for card_dict in card_lsit:
      print("%s\t\t\t%s\t\t\t%s\t\t\t%s\t\t\t" % (card_dict["name_str"],
                                                    card_dict["phone_str"],
                                                    card_dict["qq_str"],
                                                    card_dict["email_str"]))


def search_card():

    """搜索名片"""
    print("-" * 50)
    print("搜索名片")

    # 1. 提示用户输入要搜索的内容

    find_name = input("请输入要搜索的姓名:")

    # 2. 遍历名片列表,查询要搜索的姓名,如果没有找到,需要提示用户添加
    for card_dict in card_lsit:

      if card_dict["name_str"] == 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_str"],
                                                      card_dict["phone_str"],
                                                      card_dict["qq_str"],
                                                      card_dict["email_str"]))
            deal_card(card_dict)
            break
    else:

      print("抱歉没有找到%s,请去添加名片" % find_name)

def deal_card(find_dict):


    action_str = input("请选择要执行的操作 "
                     "【1】修改 【2】删除 【0】返回上一级菜单:")

    if action_str == "1":

      find_dict["name_str"] = input_card_info(find_dict["name_str"], "name:")
      find_dict["phone_str"] = input_card_info(find_dict["phone_str", "电话:"])
      find_dict["qq_str"] = input_card_info(find_dict["qq_str"], "QQ:")
      find_dict["email_str"] = input_card_info(find_dict["email_str", "邮箱:"])

      print("修改名片成功")

    elif action_str == "2":

      card_lsit.remove(find_dict)

      print("删除名片成功")

    print(action_str)


def input_card_info(dict_valuse, tip_message):



    # 1.提示用户输入的内容

    result_str = input(tip_message)

    # 2.针对用户的输入进行判断,如果用户输入了内容,直接返回结果
    if len(tip_message) > 0:

      return result_str

    else:

      return dict_valuse

    # 3.如果用户满意输入内容,返回字典中原有的值


    pass
```

老衲不怕和尚 发表于 2021-8-19 16:35

最好将两成品展示一下   不然代码很无聊

cwl 发表于 2021-8-19 16:46

写完了不要浪费啊,就算是学习,再加个本地文本存储就可以用了啊

DoctL 发表于 2021-8-19 16:49

建议成品和代码一起展示喔

Surrin1999 发表于 2021-8-19 23:39

这。。这不B站上黑马600集里面的一个案例吗。。

warningAAAA 发表于 2021-8-20 11:54

Surrin1999 发表于 2021-8-19 23:39
这。。这不B站上黑马600集里面的一个案例吗。。

是的,很多人没有看,这也是根据那个写的,重要的是一个学习的过程
页: [1]
查看完整版本: 名片管理系统学习