Python 练手小项目-名片管理
需求描述
需要写一段程序实现简单名片管理功能
程序启动展示主界面
- 新建名片
- 显示全部
- 查询名片
- 退出系统
主程序实现
''' 名片管理系统 主程序 ''' import cards_tools while True: '''显示主界面''' cards_tools.show_menu() action = input('请选择操作功能:') print(f'您选择的操作是: {action}') # 根据用户输入进行分支判断 if action in ['1', '2', '3']: ''' 1 新增 2 展示 3 查找 ''' if action == '1': cards_tools.new_card() elif action == '2': cards_tools.show_all() elif action == '3': cards_tools.search_card() elif action == '0': print("欢迎再次使用[名片管理系统]") break else: print("输入错误;请重试")
主功能实现
''' 工具类 ''' # 列表用于存放名片 card_list = [] def show_menu(): '''显示主菜单''' print('*' * 40) print('欢迎使用[名片关系系统]v0.10') print('') print('1、新建名片') print('2、显示全部') print('3、查询名片') print('') print('0、退出系统') print('*' * 40) def new_card(): '''新建名片''' print('-' * 50) 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(card_list) print(f"成功添加{card_dict['name']}名片!") def show_all(): '''显示全部''' print('-' * 50) print('功能:显示全部') # 若列表为空,直接返回 if len(card_list) == 0: print("请先添加名片!") return # 打印表头 print('姓名\t电话\tQQ\t邮箱') print('*' * 40) # 格式化输出 for card_dict in card_list: print(f"{card_dict['name']}\t{card_dict['phone']}\t{card_dict['qq']}\t{card_dict['email']}") print('*' * 40) def search_card(): '''查询名片''' print('功能:查询名片') print('*' * 40) # 提示查询名片的键 find_name = input("请输入要查询的姓名:") # 遍历查询 for card_dict in card_list: if card_dict['name'] == find_name: # 找到了 print("-" * 30) print('姓名\t电话\tQQ\t邮箱') print(f"{card_dict['name']}\t{card_dict['phone']}\t{card_dict['qq']}\t{card_dict['email']}") print("-" * 30) # 查询到的名片处理逻辑 deal_card(card_dict) break else: print(f"{find_name} 不在名片系统中") def deal_card(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(f"{find_dict['name']}的名片修改成功!") elif action_str == '2': card_list.remove(find_dict) print("删除成功!") def input_card_info(dict_value, tlp_message): ''' 字典内容部分键值对修改 :param dict_value: 字典原值 :param tlp_message: 输入值 :return:如果输入,返回输入内容,否则返回字段原值 ''' # 提示用户输入内容 result_info = input(tlp_message) # 判断是否输入 # if len(result_info.strip()) > 0: if len(result_info) > 0: # 有输入非空白返回输入内容 return result_info else: # 无输入返回原值 return dict_value
运行效果
**************************************** 欢迎使用[名片关系系统]v0.10 1、新建名片 2、显示全部 3、查询名片 0、退出系统 **************************************** 请选择操作功能:1 您选择的操作是: 1 -------------------------------------------------- 功能:新建名片 请输入姓名:令狐冲 请输入电话:18511001236 请输入QQ:1259865 请输入邮箱:linghc@163.com 成功添加令狐冲名片! **************************************** 欢迎使用[名片关系系统]v0.10 1、新建名片 2、显示全部 3、查询名片 0、退出系统 **************************************** 请选择操作功能:2 您选择的操作是: 2 -------------------------------------------------- 功能:显示全部 姓名 电话 QQ 邮箱 **************************************** 令狐冲 18511001236 1259865 linghc@163.com **************************************** **************************************** 欢迎使用[名片关系系统]v0.10 1、新建名片 2、显示全部 3、查询名片 0、退出系统 **************************************** 请选择操作功能:1 您选择的操作是: 1 -------------------------------------------------- 功能:新建名片 请输入姓名:依琳 请输入电话:13110257896 请输入QQ:45685232 请输入邮箱:yilin@qq.com 成功添加依琳名片! **************************************** 欢迎使用[名片关系系统]v0.10 1、新建名片 2、显示全部 3、查询名片 0、退出系统 **************************************** 请选择操作功能:2 您选择的操作是: 2 -------------------------------------------------- 功能:显示全部 姓名 电话 QQ 邮箱 **************************************** 令狐冲 18511001236 1259865 linghc@163.com 依琳 13110257896 45685232 yilin@qq.com **************************************** **************************************** 欢迎使用[名片关系系统]v0.10 1、新建名片 2、显示全部 3、查询名片 0、退出系统 **************************************** 请选择操作功能:3 您选择的操作是: 3 功能:查询名片 **************************************** 请输入要查询的姓名:令狐冲 ------------------------------ 姓名 电话 QQ 邮箱 令狐冲 18511001236 1259865 linghc@163.com ------------------------------ 请输入操作选项:1、修改/ 2、删除/ 0、返回上级菜单1 请输入姓名(回车不修改) 请输入电话(回车不修改) 请输入QQ(回车不修改) 请输入邮箱(回车不修改)linghuc@qq.com 令狐冲的名片修改成功! **************************************** 欢迎使用[名片关系系统]v0.10 1、新建名片 2、显示全部 3、查询名片 0、退出系统 **************************************** 请选择操作功能:2 您选择的操作是: 2 -------------------------------------------------- 功能:显示全部 姓名 电话 QQ 邮箱 **************************************** 令狐冲 18511001236 1259865 linghuc@qq.com 依琳 13110257896 45685232 yilin@qq.com **************************************** **************************************** 欢迎使用[名片关系系统]v0.10 1、新建名片 2、显示全部 3、查询名片 0、退出系统 **************************************** 请选择操作功能:0 您选择的操作是: 0 欢迎再次使用[名片管理系统]