1 # 简易手机通讯录
2
3 """
4 介绍:
5 1、通讯录是记录联系人姓名和联系方式的名录,手机通讯录是最常见的通讯录之一,人们可以在通讯录中通过姓名查看
6 相关联系人的联系方式:手机号、邮箱、地址等信息,也可以在通讯录中新增联系人、修改联系人、删除联系人信息。
7
8 知识点:
9 1、字典的使用:创建、添加、修改、删除、遍历
10 2、循环语句:while、for
11 3、判断语句:if、elif、else
12 4、跳转语句:break、continue
13 4、旗帜使用
14
15 不足(待改善):
16 1、在查看联系人时,使用了制表符'\t',由于每个联系人的信息都不是相同的字符数,甚至空字符,
17 所以在遍历打印时没有打印整齐,有待改善。
18 2、此程序没有太强的可读性,可以添加许多提示语,完善程序,例如:已删除成功、已添加成功等......
19 3、细心的小伙伴都会注意到,此程序是不断的还行打印,很影响观感,可以尝试改为静态页面,在原基础上刷新。
20 4、此程序的通讯录是暂时暂时存在字典中的,再次运行程序通讯录是空的,可以尝试长久保存起来。
21 """
22
23
24 # 定义一个字典变量,用于存储好友联系方式
25 address_list = dict()
26
27 # 定义一个字符串变量
28 message = '请输入编号:'
29
30 while True:
31
32 # 通讯录界面打印
33 print('=====欢迎进入通讯录=====')
34 print('1.添加联系人\t2.查看通讯录')
35 print('3.删除联系人\t4.修改联系人')
36 print('5.查找联系人\t0.退出')
37
38 # 选择菜单功能
39 print(message, end='')
40 num = input()
41
42 # 添加联系人
43 if num == '1':
44 # 输入个人信息
45 name = input('请输入姓名:')
46 phone = input('请输入手机号:')
47 e_mail = input('请输入邮箱:')
48 addr = input('请输入地址:')
49
50 # 存入字典
51 address_list[name] = [phone, e_mail, addr]
52
53 # 查看通讯录
54 elif num == '2':
55
56 flag_output = 0 # 打印联系人旗帜
57
58 # 遍历字典元素
59 for i in address_list:
60 print('姓名:{}\t手机号:{}\t邮箱:{}\t地址:{}' .format(i, address_list[i][0], address_list[i][1], address_list[i][2]))
61 flag_output = 1 # 打印联系人旗帜
62
63 # 判断是否打印通讯录联系人
64
65 if flag_output != 1: # 等价于flag_output == 0
66 print('通讯录暂无联系人!')
67
68 # 删除联系人
69 elif num == '3':
70 name = input('请输入需要删除的联系人姓名:')
71 address_list.pop(name) # 删除字典元素
72
73 # 修改联系人
74 elif num == '4':
75
76 flag_alter = 0 # 修改通讯录旗帜
77
78 name = input('请输入需要修改的联系人姓名:')
79
80 # 遍历查找此人
81 for i in address_list:
82
83 # 判断通讯录是否有此人
84 if i == name:
85 # 重新输入个人信息
86 name1 = input('请输入新的姓名:')
87 phone1 = input('请输入新的手机号:')
88 e_mail1 = input('请输入新的邮箱:')
89 addr1 = input('请输入新的地址:')
90
91 # 判断是否有修改联系人姓名
92 if name != name1:
93 address_list.pop(name) # 删除字典元素
94
95 # 重新存入字典(键相同,直接覆盖原有信息)
96 address_list[name1] = [phone1, e_mail1, addr1]
97 flag_alter = 1 # 修改通讯录旗帜
98 break
99
100 # 判断是否修改通讯录联系人
101 if flag_alter == 0:
102 print('此人:{},通讯录不存在!'.format(name))
103
104 # 查找联系人
105 elif num == '5':
106
107 flag_output = 0 # 打印联系人旗帜
108
109 name = input('请输入需要查找的联系人姓名:')
110
111 # 遍历查找此人
112 for i in address_list:
113 if i == name:
114 print('姓名:{}\t手机号:{}\t邮箱:{}\t地址:{}' .format(name, address_list[name][0], address_list[name][1], address_list[name][2]))
115 flag_output = 1 # 打印联系人旗帜
116 break
117
118 # 判断是否打印通讯录联系人
119 if flag_output != 1: # 等价于flag_output == 0
120 print('此人:{},通讯录不存在!'.format(name))
121
122 # 退出
123 elif num == '0':
124 print(' =====已退出通讯录=====')
125 break
126
127 # 其他
128 else:
129 print('输入有误!!!')
130 message = '请重新输入编号:'
131 continue
132
133 message = '请输入编号:'
运行结果: