首先请见主函数
import test_4_tool while True: # 显示功能菜单 test_4_tool.show_menu() action_str = input("请选择希望执行的操作:") print("您选择的操作是【%s】" % action_str) # 1,2,3针对电话簿的操作 if action_str in ["1", "2", "3"]: # 新增名片 if action_str == "1": test_4_tool.new_card() # 显示全部 elif action_str == "2": test_4_tool.show_all() # 查询名片 else: test_4_tool.search_card() # 0 退出系统 elif action_str == "0": print("欢迎再次使用【电话簿】") break # 如果开发程序时,不希望立刻编写分支内部的代码,可使用 pass 关键字 # pass 关键字表示一个占位符,能够保证程序的代码结构正确 # 程序运行时,pass 关键字不执行任何操作 # pass # 当输入其他内容时,需提示用户 else: print("您输入的不正确,请重新输入")
上述索引函数为 test_4_tool
# 记录所有联系人字典 card_list = [] def show_menu(): """显示菜单""" print("*" * 50) print("欢迎使用【电话簿】") print("") print("1.新增联系人") print("2.显示全部联系人") print("3.搜索联系人") print("") print("0.退出系统") print("*" * 50) def new_card(): """新增名片""" print("-" * 100) print("新增联系人") # 1.提示用户输入名片的详细信息 name_str = input("请输入姓名:") phone_str = input("请输入电话:") index_str = input("请输入工作单位:") email_str = input("请输入邮箱:") # 2.使用用户输入的信息建立一个联系人字典 card_dict = {"name": name_str, "phone": phone_str, "index": index_str, "email": email_str} # 3.将联系人字典添加到列表中 card_list.append(card_dict) for name_dict in card_list: print(name_dict) # 4.提示用户添加联系人成功 print("添加 %s 成功!" % name_str) print("-" * 100) print() def show_all(): """显示所有联系人""" print("-" * 100) # 判断是否存在联系人记录,如果没有,提示用户添加联系人并返回 if card_list: print("显示所有联系人") # 打印表头 for name in ["Name", "Phone", "Index", "Email"]: print(name, end="\t\t") # 打印分割线 print() print("-" * 100) # 遍历名片列表依次输出字典信息 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["index"], card_dict["email"],)) print("-" * 100) print() else: print("当前没有任何的联系人记录,请使用新增联系人功能添加联系人!") def search_card(): """搜索联系人""" print("-" * 100) print("搜索联系人") # 1.提示用户输入要搜索的姓名 find_name = input("请输入要搜索的姓名:") # 2.遍历名片列表,擦好像要搜索的姓名,如果没有找到,需要提示用户 for card_dict in card_list: if card_dict["name"] == find_name: print("已查询,结果如下:") print("Name\t\tPhone\t\tIndex\t\tEmail") print("=" * 100) print("%s \t\t%s \t\t%s \t\t%s \t\t" % (card_dict["name"], card_dict["phone"], card_dict["index"], card_dict["email"],)) # 针对找到的联系人记录执行修改和删除的操作 deal_card(card_dict) break else: print("很抱歉,没有查询到 %s" % find_name) print("-" * 100) print() def deal_card(find_dict): """处理查找到的联系人 :param 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["index"] = input_card_info(find_dict["index"], "工作地址(若不修改请按回车键):") 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