cards_main.py
#! /usr/bin/python3 # 增加shebang标记,再给文件增加可执行权限,就可以直接通过文件名执行 import cards_tool # 无限循环,由用户主动决定什么时候退出 while True: # 显示功能菜单 cards_tool.show_menu() action_str = input("请选择希望执行的操作:") print("您选择的操作是【%s】" % action_str) # 使用in判断,避免复杂的逻辑表达式 if action_str in ["1", "2", "3"]: # 新增名片 if action_str == "1": cards_tool.new_card() # 显示全部 elif action_str == "2": cards_tool.show_all() # 查询名片 elif action_str == "3": cards_tool.search_card() elif action_str == "0": print("【退出程序 谢谢使用】") break # 如果在开发程序时,不希望立即编写分支内部的代码 # 可以使用pass关键字,表示一个占位符,保证程序的代码结构正确 # pass else: print("您输入的不正确,请重新输入")
cards_tool.py
# 所有名片记录的列表 card_list = [] def show_menu(): """显示菜单""" print("*" * 50) print("欢迎使用【名片管理系统】V1.0") print("1.新增名片") print("2.显示全部") print("3.搜索名片") print("0.退出系统") print("*" * 50) def new_card(): """新增名片""" print("-" * 50) print("新增名片") print("请输入名片信息:") name = input("姓名:") phone = input("电话:") qq = input("qq:") email = input("邮箱:") card_dict = {"name": name, "phone": phone, "qq": qq, "email": email} card_list.append(card_dict) print("用户%s添加成功!" % name) def show_all(): """显示全部""" print("-" * 50) print("显示全部") if len(card_list) == 0: print("当前没有记录,请使用新增功能") 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\t\t" % (card_dict["name"], card_dict["phone"], card_dict["qq"], card_dict["email"])) def search_card(): """搜索名片""" print("-" * 50) print("搜索名片") find_name = input("请输入要搜索的姓名:") for card_dict in card_list: if card_dict["name"] == find_name: print("找到%s" % find_name) print("姓名\t\t电话\t\tQQ\t\t邮箱\t\t") print("%s\t\t%s\t\t%s\t\t%s\t\t" % (card_dict["name"], card_dict["phone"], card_dict["qq"], card_dict["email"])) deal_card(card_dict) break else: print("抱歉,没有找到%s" % find_name) def deal_card(find_dict): """ 对名片信息进行处理(删除/修改) :param find_dict: 名片信息 :return: 无 """ action_str = input("请选择要执行的操作:" "1修改/2删除/0返回主菜单 ") if action_str == "1": find_dict["name"] = input_info(find_dict["name"], "姓名:") find_dict["phone"] = input_info(find_dict["phone"], "电话:") find_dict["qq"] = input_info(find_dict["qq"], "qq:") find_dict["email"] = input_info(find_dict["email"], "email:") print("修改名片完成!") elif action_str == "2": card_list.remove(find_dict) print("删除名片成功!") def input_info(dict_value, tip_message): """ 输入名片信息 :param dict_value: 字典中原有的值 :param tip_message: 提示信息 :return: 如果用户输入了内容,就返回输入的值;如果用户没有输入内容,就返回原来的值 """ result_str = input(tip_message) if len(result_str) > 0: return result_str else: return dict_value