1 # 用来存储名片的列表
2 card_infors = []
3
4
5 def print_menu():
6 # 1. 打印功能提示
7 print("=" * 50)
8 print(" 名片管理系统")
9 print("1. 增加一个新名片")
10 print("2. 删除一个名称")
11 print("3. 修改一个名片")
12 print("4. 查询一个名片")
13 print("5. 显示所有名片")
14 print("6. 保存信息")
15 print("7. 退出系统")
16 print("=" * 50)
17
18
19 def add_new_card_infor():
20 """完成文档输入:"""
21 new_name = input("请输入新的名字:")
22 new_qq = input("请输入新的QQ:")
23 new_weixin = input("请输入新的微信:")
24 new_addr = input("请输入地址:")
25
26 # 定义一个新的字典,用来存储新的名片
27 new_infor = {}
28 new_infor['name'] = new_name
29 new_infor['qq'] = new_qq
30 new_infor["weixin"] = new_weixin
31 new_infor['addr'] = new_addr
32 global card_infors
33 card_infors.append(new_infor)
34
35
36 def find_card_infor():
37 find_name = input("请输入要查找的姓名:")
38
39 find_flag = 0 # 默认没有找到
40
41 global card_infors
42 for temp in card_infors:
43 if find_name == temp["name"]:
44 print("%s\t%s\t%s\t%s" % (temp['name'], temp['qq'], temp['weixin'], temp['addr']))
45 find_flag = 1
46 break
47 if find_flag == 0:
48 print("查无此人")
49
50
51 def show_all_infor():
52 """显示所有信息"""
53 print("姓名\tQQ\t微信\t住址")
54 global card_infors
55 for temp in card_infors:
56 # print(temp)
57 print("%s\t%s\t%s\t%s" % (temp['name'], temp['qq'], temp['weixin'], temp['addr']))
58
59
60 def del_card_infor():
61 del_name = input("请输入要查找的姓名:")
62 find_flag = 0 # 默认没找到
63
64 global card_infors
65 for temp in card_infors:
66 if del_name == temp["name"]:
67 card_infors.remove(temp)
68 find_flag = 1
69 show_all_infor()
70 break
71 if find_flag == 0:
72 print("查无此人")
73
74
75 def del_modify_infor():
76 modify_name = input("请输入要修改信息的名称:")
77 find_flag = 0
78
79 global card_infors
80 for temp in card_infors:
81 if modify_name == temp["name"]:
82 modify_content = input("请输入要修改的信息,如name,qq,weixin,addr等:")
83 for name in temp.keys():
84 print("+" * 50)
85 print(temp.keys())
86 print("+" * 50)
87 print(name)
88 if modify_content == name:
89 modify_value = input("请输入要修改的值:")
90 temp[name] = modify_value
91 show_all_infor()
92 find_flag = 1
93 break
94
95 if find_flag == 0:
96 print("查无此人")
97
98 def save_2_file():
99 """把已经添加的信息保存到指定文件中"""
100 f = open("backup.data","w") #data是自己定义的格式
101 f.write(str(card_infors))
102 f.close()
103
104 # 加载之前数据
105 def load_infor():
106 f = open("backup.data")
107
108 global card_infors # 在局部变量中修改全局变量时使用:global
109 card_infors = eval(f.read()) #eval恢复数据的原始模式,即list模式
110
111 f.close()
112
113
114 def main():
115 """完成对整个程序得控制"""
116
117 #恢复(加载)之前的数据到程序中
118 load_infor()
119
120 print_menu()
121 while True:
122 # 2. 获取用户的输入
123 num = int(input("请输入操作序号:"))
124
125 # 3. 根据用户的数据执行相应的功能:
126 if num == 1:
127 add_new_card_infor()
128 elif num == 2:
129 del_card_infor()
130 elif num == 3:
131 del_modify_infor()
132 elif num == 4:
133 find_card_infor()
134 elif num == 5:
135 show_all_infor()
136 elif num == 6:
137 save_2_file()
138 elif num == 7:
139 break
140 else:
141 print("输入有误,请重新输入:")
142
143
144 if __name__ == "__main__":
145 main()
146
147 # 调用主函数