Python 练习-名片管理小程序

 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的数字")
View Code
  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
View Code

Python基础知识的小综合练习。

主要知识点:

  1.分支结构,循环结构的使用

  2.主函数搭建框架,主要功能写在另一模块中

  3.每一个函数代码不宜太长,如果有子功能可以再封装成一个函数调用

  4.列表,字典变量的应用

  5.注释的技巧:函数添加文档注释,标记参数和返回值,以便阅读和调用时查看

         待完成的功能可以使用 #TODU 标注。

猜你喜欢

转载自www.cnblogs.com/ljkCode/p/9448398.html