基础DAY5-名片管理系统

01 框架搭建

准备文件,确定文件名,保证能够在需要的位置编写代码

编写主运行循环,实现基本的用户输入和判断

1.1 文件准备

1cards_main.py保存主程序功能代码

 程序入口

 每一次启动名片管理系统都通过main这个文件启动

2新建cards_tools.py保存所有名片功能参数

 将对名片的新增,查询,修改,删除等功能封装在不同的函数中

while True:
# TODO 显示功能菜单
print("您选择的操作是【%s】" % action_str)
# TODO 1,2,3针对名片的操作
if action_str in ["1", "2", "3"]:
    pass
# 0 退出系统
elif action_str == "0":
    print(“欢迎再次使用”)
    break
# 其他内容输入错误,提示用户
else:
print("您输入的不正确,请重新选择")

字符串判断  if action_str in ["1", "2", "3"]:

无限循环  while True:

占位符  pass

TODO注释  用于标记需要去做的工作 变蓝加粗

 1 while True:
 2     import cards_tools
 3     cards_tools.show_menu()
 4     action_str = input("请选择希望执行的操作:")
 5     print("您选择的操作是【%s】" % action_str)
 6     # 1,2,3针对名片的操作
 7     if action_str in ["1", "2", "3"]:
 8         #  新增名片
 9         if action_str == "1":
10             cards_tools.new_card()
11         #  显示全部
12         elif action_str == "2":
13             cards_tools.show_all()
14         #  查询名片
15         elif action_str == "3":
16             cards_tools.search_card()
17     # 0 退出系统
18     elif action_str == "0":
19         print("欢迎再次使用名片管理系统")
20         # 如果在开发程序时,不希望立刻编写分支内部的代码
21         # 可以使用pass 关键字,表示一个占位符,能够保证程序的代码结构正确
22         # 程序运行时,pass 关键字不会执行任何操作
23         break
24     # 其他内容输入错误,提示用户
25     else:
26         print("您输入的不正确,请重新选择")
cards_main
  1 # 变量记录所有的名片字典
  2 card_list = []
  3 
  4 def show_menu():
  5     print("*" * 50)
  6     print("欢迎使用【名片管理系统】V1.0")
  7     print("1、新建名片")
  8     print("2、显示全部")
  9     print("3、查询名片")
 10     print("")
 11     print("0、退出系统")
 12     print("*" * 50)
 13 def new_card():
 14     """新增名片"""
 15     print("-" * 50)
 16     print("新增名片")
 17     # 1。提示用户输入名片的详细信息
 18     name_str = input("请输入姓名:")
 19     phone_str = input("请输入电话:")
 20     qq_str = input("请输入QQ:")
 21     email_str = input("请输入邮件:")
 22     # 2 .使用用户输入的信息建立一个名片字典
 23     card_dict = {"name": name_str,
 24                  "phone": phone_str,
 25                  "qq": qq_str,
 26                  "email": email_str
 27                 }
 28     # 3.将名片字典加入列表
 29     card_list.append(card_dict)
 30     print(card_list)
 31     # 4.提示用户添加陈宫
 32     print("添加%s的名片成功!"% name_str)
 33 def show_all():
 34     """显示所有名片"""
 35     print("-" * 50)
 36     print("显示所有名片")
 37     # 打印表头
 38     if len(card_list) == 0:
 39         print("当前没有记录,请使用新增功能")
 40         # return 可以返回一个函数的执行结果
 41         # 下方的代码不会被执行,返回调用函数的位置
 42         # 不返回任何结果
 43         return
 44     for name in ["姓名", "电话", "QQ", "邮箱"]:
 45         print(name,end="		")
 46     print("")
 47     # 打印分割线
 48     print("-" * 100)
 49     # 遍历名片列表 依次输出字典
 50     for card_dict in card_list:
 51         print("%s		%s		%s		%s		" % (card_dict["name"],
 52                                             card_dict["phone"],
 53                                             card_dict["qq"],
 54                                             card_dict["email"],
 55                                             ))
 56 def search_card():
 57     """搜索名片"""
 58     print("-" * 50)
 59     print("搜索名片")
 60     # 1、提示用户输入要搜索的姓名
 61     find_name = input("请输入要搜索的姓名:")
 62     # 2、遍历名片列表,查询要搜索的姓名
 63     for card_dict in card_list:
 64         if card_dict["name"] == find_name:
 65             print("找到了")
 66             print("姓名		电话		QQ		邮箱")
 67             print("-" * 100)
 68             print("%s		%s		%s		%s		" % (card_dict["name"],
 69                                                 card_dict["phone"],
 70                                                 card_dict["qq"],
 71                                                 card_dict["email"],
 72                                                 ))
 73             # 修改 删除功能
 74             deal_card(card_dict)
 75             break
 76     # 3、如果没有找到需要提示用户
 77     else:
 78         print("没有找到%s" % find_name)
 79 def deal_card(find_dict):
 80     """处理查找到的名片
 81 
 82     :param find_dict:
 83     """
 84     print(find_dict)
 85     action_str = input("【1】 修改 "
 86                        "【2】 删除 "
 87                        "【3】 返回")
 88     if action_str == "1":
 89         find_dict["name"] = input_card_info(find_dict["name"],"修改姓名【回车不修改】")
 90         find_dict["phone"] =input_card_info(find_dict["phone"],"修改电话【回车不修改】")
 91         find_dict["qq"] = input_card_info(find_dict["qq"],"修改QQ【回车不修改】")
 92         find_dict["email"] = input_card_info(find_dict["email"],"修改邮件【回车不修改】")
 93         print("修改名片成功")
 94     elif action_str == "2":
 95         card_list.remove(find_dict)
 96         print("删除名片")
 97 def input_card_info(dict_value,tip_message):
 98     """输入名片信息
 99 
100     :param dict_value:字典中原有值
101     :param tip_message: 输入的提示文字
102     :return: 如果用户输入的内容 就返回内容 否则返回字典中原有的值
103     """
104     # 1 提示用户输入内容
105     result_str = input(tip_message)
106     # 2 针对用户输入进行判断,如果输入了内容,直接返回结果
107     if len(result_str) > 0:
108         return result_str
109     # 2 如果用户没有输入内容,返回字典中原有的值
110     else:
111         return dict_value
card_tool
原文地址:https://www.cnblogs.com/joycezhou/p/11333286.html