1 #! /usr/bin/python3 2 3 #导入card_tools模块 4 import card_tools 5 6 while True: 7 #显示功能菜单 8 card_tools.show_menu() 9 10 #获取用户输入内容 11 user_input = input("请选择您要进行的操作:") 12 13 #判断用户输入内容 14 if user_input in ["1","2","3"]: 15 if user_input == "1": 16 card_tools.new_cards() 17 elif user_input == "2": 18 card_tools.show_all() 19 else: 20 card_tools.search_card() 21 22 elif user_input == "0": 23 24 break 25 26 else: 27 print("您的操作有误0.0,请输入0-3的数字")
1 def show_menu(): 2 """ 3 显示功能菜单函数 4 """ 5 print() 6 print("*"*50) 7 print("欢迎来到名片管理系统-.-") 8 print("-"*50) 9 print("\t[1] 新增名片") 10 print("\t[2] 显示全部") 11 print("\t[3] 查询名片") 12 print("\t[0] 退出系统") 13 print("*"*50) 14 15 16 def make_tab(): 17 """ 18 打印表头 19 """ 20 print("="*50) 21 print("姓名\t\t年龄\t\t电话\t\t邮箱") 22 print("-"*50) 23 24 # 创建列表用于保存键值对 25 #不能放到函数里面,不然每次新建名片内容都被覆盖了 26 card_list = [] 27 28 29 def new_cards(): 30 """ 31 定义一个新建名片的函数,获取到用户输入的内容后,放入一个键值对当中,然后把键值对放入一个列表中 32 """ 33 # 获取用户输入内容并用键值对保存 34 name =input("请输入姓名:") 35 age = input("请输入年龄:") 36 tel = input("请输入电话:") 37 email = input("请输入邮箱:") 38 user_dict = {"name":name, 39 "age":age, 40 "tel":tel, 41 "email":email} 42 43 #把键值对放入列表中 44 card_list.append(user_dict) 45 46 47 def show_all(): 48 49 """ 50 定义一个显示全部内容的函数,如果列表有信息就遍历,没信息提示用户输入 51 52 """ 53 54 if len(card_list)!=0: 55 56 make_tab() 57 58 # 遍历列表得到用户信息字典 59 for user_dict in card_list: 60 61 # 得到用户各项信息的值 (和表头对齐) 62 for key in ("name","age","tel","email"): 63 print("%s\t\t" % user_dict[key] ,end="") 64 # print("%s\t\t\t" % user_dict["name"],end="") 65 # print("%s\t\t\t" % user_dict["age"],end="") 66 # print("%s\t" % user_dict["tel"],end="") 67 # print("%s\t" % user_dict["email"],end="") 68 print() 69 print("="*50) 70 71 else: 72 print("当前没有任何信息,请添加新增名片") 73 74 75 76 #查询名片 77 def search_card(): 78 """ 79 遍历card_list得到用户键值对,再把键值对中的name的值与用户 80 输入内容作比较,如果匹配到了则返回用户信息,如果没匹配到则 81 提示用户没搜索到 82 """ 83 find_name = input("请输入您要查找的姓名:") 84 85 for key_value in card_list: 86 87 if key_value["name"] == find_name: 88 make_tab() 89 for key in ("name","age","tel","email"): 90 print("%s\t\t" % key_value[key] ,end="") 91 print() 92 print("="*50) 93 94 # 处理名片(修改或者删除) 95 96 deal_cards(key_value) 97 break 98 99 else: 100 print("您所查找的名片不存在!") 101 102 103 104 def deal_cards(key_value): 105 """ 106 找到用户后,对名片进行修改或者删除操作 107 :key_value: 在查找函数中,查找到的用户信息字典 108 """ 109 user_input_str = input("请选择您要进行的操作: [1]修改名片 [2]删除名片 [0]返回上一层") 110 if user_input_str == "1": 111 #修改名片 112 # key_value["name"]= input("姓名:") 113 # key_value["age"]= input("年龄:") 114 # key_value["email"]= input("邮箱:") 115 # key_value["tel"]= input("电话:") 116 117 key_value["name"] = user_input_info(key_value["name"],input("姓名")) 118 key_value["age"] = user_input_info(key_value["age"],input("年龄")) 119 key_value["tel"] = user_input_info(key_value["tel"],input("电话")) 120 key_value["email"] = user_input_info(key_value["email"],input("邮箱")) 121 print("修改成功!") 122 123 elif user_input_str == "2": 124 #删除名片 125 card_list.remove(key_value) 126 print("删除成功!") 127 128 129 def user_input_info(dict_value,input_value): 130 """ 131 判断用户的输入的值,如果不是空则修改原值。否则返回原值 132 :param dict_value: 字典中原有的值 133 :param input_value: 用户输入的用于修改的值 134 :return: 修改后的值 135 """ 136 if len(input_value) == 0: 137 return dict_value 138 else: 139 return input_value
Python基础知识的小综合练习。
主要知识点:
1.分支结构,循环结构的使用
2.主函数搭建框架,主要功能写在另一模块中
3.每一个函数代码不宜太长,如果有子功能可以再封装成一个函数调用
4.列表,字典变量的应用
5.注释的技巧:函数添加文档注释,标记参数和返回值,以便阅读和调用时查看
待完成的功能可以使用 #TODU 标注。