1
+ # 记录所有的名片字典
2
+ card_list = []
3
+
4
+
5
+ def show_menu ():
6
+ """显示菜单"""
7
+ print ("*" * 50 )
8
+ print ("欢迎使用 【名片管理系统】V1.0" )
9
+ print ()
10
+ print ("1. 新增名片" )
11
+ print ("2. 显示全部" )
12
+ print ("3. 搜索名片" )
13
+ print ()
14
+ print ("0. 退出系统" )
15
+ print ("*" * 50 )
16
+
17
+
18
+ def new_card ():
19
+ """新增名片"""
20
+ print ("-" * 50 )
21
+ print ("新增名片" )
22
+ # 1.提示用户输入名片的详细信息
23
+ name_str = input ("请输入姓名:" )
24
+ phone_str = input ("请输入电话:" )
25
+ qq_str = input ("请输入QQ:" )
26
+ email_str = input ("请输入邮箱:" )
27
+
28
+ # 2.使用用户输入的信息建立一个名片字典
29
+ card_dict = {"name" : name_str , "phone" : phone_str ,
30
+ "qq" : qq_str , "email" : email_str }
31
+
32
+ # 3.及那个名片字典添加到列表中
33
+ card_list .append (card_dict )
34
+ print (card_list )
35
+
36
+ # 4.提示用户添加成功
37
+ print ("添加 %s 的名片成功" % name_str )
38
+
39
+
40
+ def show_all ():
41
+ """显示所有名片"""
42
+ print ("-" * 50 )
43
+ print ("显示所有名片" )
44
+
45
+ # 判断是否存在名片记录,如果没有,提示用户且返回
46
+ if len (card_list ) == 0 :
47
+ print ("当前名片没有任何记录,请使用新增功能添加名片!" )
48
+ # return 可以返回一个函数执行结果
49
+ # 下方的代码不会被执行
50
+ # 如果 return 后面没有任何的内容,表示会返回到调用函数的位置
51
+ # 并且不会返回任何的结果
52
+ return
53
+
54
+ # 打印表头
55
+ for name in ["姓名" , "电话" , "QQ" , "邮箱" ]:
56
+ print (name , end = "\t \t " )
57
+ print ()
58
+ # 打印分隔线
59
+ print ("=" * 50 )
60
+ # 遍历名片列表依次输出字典信息
61
+ for card_dict in card_list :
62
+ # print(card_dict)
63
+ print ("%s\t \t %s\t \t %s\t \t %s" % (card_dict ["name" ], card_dict ["phone" ],
64
+ card_dict ["qq" ], card_dict ["email" ]))
65
+
66
+
67
+ def search_card ():
68
+ """搜索名片"""
69
+ print ("-" * 50 )
70
+ print ("搜索名片" )
71
+
72
+ # 1.提示用户输入要搜索的姓名
73
+ find_name = input ("请输入要搜索的姓名:" )
74
+ # 2.遍历名片列表,查询要搜索的姓名,如果没有找到,需要提示用户
75
+ for card_dict in card_list :
76
+ if card_dict ["name" ] == find_name :
77
+ print ("姓名\t \t 电话\t \t QQ\t \t 邮箱" )
78
+ print ("=" * 50 )
79
+ print ("%s\t \t %s\t \t %s\t \t %s" % (card_dict ["name" ], card_dict ["phone" ],
80
+ card_dict ["qq" ], card_dict ["email" ]))
81
+
82
+ # 针对找到的名片进行修改/删除操作
83
+ deal_card (card_dict )
84
+
85
+ break
86
+ else :
87
+ print ("抱歉,没有找到 %s" % find_name )
88
+
89
+
90
+ def deal_card (find_dict ):
91
+ """处理查找到的名片"""
92
+ action_str = input ("请输入您想执行的操作"
93
+ "[1] 修改 [2] 删除 [3] 返回上级菜单:" )
94
+ if action_str == "1" :
95
+ find_dict ["name" ] = input_card_info (find_dict ["name" ], "姓名【回车不修改】: " )
96
+ find_dict ["phone" ] = input_card_info (find_dict ["phone" ], "电话【回车不修改】: " )
97
+ find_dict ["qq" ] = input_card_info (find_dict ["qq" ], "QQ号【回车不修改】: " )
98
+ find_dict ["email" ] = input_card_info (find_dict ["email" ], "邮箱【回车不修改】: " )
99
+ print ("修改成功" )
100
+ elif action_str == "2" :
101
+ card_list .remove (find_dict )
102
+ print ("删除成功" )
103
+
104
+
105
+ def input_card_info (dict_value , tip_message ):
106
+ """修改名片信息
107
+ :param dict_value: 字典中原有的值
108
+ :param tip_message: 输入的提示信息
109
+ :return: 如果用户输入了内容,就返回内容,否则返回字典中原有的值
110
+ """
111
+ # 1.提示用户输入内容
112
+ result_str = input (tip_message )
113
+ # 2.针对用户的输入进行判断,如果用户输入内容,直接返回结果
114
+ if len (result_str ) > 0 :
115
+ return result_str
116
+ # 3.如果用户没有输入内容,返回字典中原有的值
117
+ else :
118
+ return dict_value
0 commit comments