本文实例为大家分享了python实现通讯录管理系统的具体代码,供大家参考,具体内容如下
=====欢迎使用通讯录管理系统=====
1.添加
2.修改
3.册除
4.查询
5.排序
6.退出
=========================
请选择你要执行的操作的序号,具体要求:
1)通讯录要以文件的形式存储在硬盘上(比如D:\tongxunlu) ,每一条数据(联系人姓名和手机号码)存储一行,如果一个联系人有多个手机号,则都存储在同一行,即通讯录中每个联系入的数据占一行。
2)系统运行时初始菜单如上,根据用户选择的序号执行相应的操作:
添加功能:提醒角户输入姓名和手机号码,同时进行手机号码格式检查,合法则该姓名和手机号码插入到通讯录最后一行。
修改功能:根据用户指定的联系人姓名修改其手机号码,修改后保存文件。 删除功能:根据用户输人的姓名删除该条记录。
查询功能:可以根据联系人姓名查询其手机号,也可以根据手机号查询联系人姓名。 排序功能:要求用户选择按联系人姓名升序或降序,对通讯录进行排序。
退出功能:结束程序的运行。 注意:只有选择序号6(退出)时,程序的运行才会结束,否则一直循环等待用户进行增删改查操作。
这里我利用openpyxl对Excel操作
源码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
from openpyxl import load_workbook fn = r 'd:\tongxunlu.xlsx' # 打印操作菜单 def showMenu(): print ( "========欢迎使用通讯录管理系统========" ) print ( " 1.添加" ) print ( " 2.修改" ) print ( " 3.删除" ) print ( " 4.查询" ) print ( " 5.排序" ) print ( " 6.退出" ) print ( "==================================" ) # 打开文件 def openFile(): wb = load_workbook(fn) ws = wb.active return ws, wb # 判断手机号是否合法 def isLegal(s): if len (s) = = 11 and s.isdigit(): return True else : return False # 添加手机号 def addData(): data = input ( "输入姓名和号码(空格分开):" ).split( " " ) for i in range ( len (data), 1 , - 1 ): # 从最后一个手机号开始 s = isLegal(data[i - 1 ]) if not s: print ( "手机号码必须为11位数字!" ) addData() else : w1, w2 = openFile() w1.append(data) print ( "添加成功!" ) w2.save(fn) # 更改手机号 def changeData(): flag = False data = input ( "请输入需要修改的姓名和新的手机号码(空格分开):" ).split( " " ) if not isLegal(data[ 1 ]): print ( "手机号码必须为11位数字!" ) changeData() else : w1, w2 = openFile() for row in w1.rows: if row[ 0 ].value = = data[ 0 ]: flag = True row[ 1 ].value = data[ 1 ] if not flag: print ( "通讯录中没有此人!" ) changeData() else : print ( "修改成功!" ) w2.save(fn) # 删除人 def delete(): flag = False x = 0 name = input ( "请输入要删除的姓名:" ) w1, w2 = openFile() for row in w1.rows: x + = 1 if row[ 0 ].value = = name: flag = True w1.delete_rows(x) if not flag: print ( "通讯录中没有此人!" ) else : print ( "删除成功!" ) w2.save(fn) # 查找手机号或者姓名 def search(): flag = False data = input ( "请输入姓名或手机号码:" ) w1, w2 = openFile() for row in w1.rows: if row[ 0 ].value = = data: flag = True print (row[ 1 ].value) if row[ 2 ].value is not None : print (row[ 2 ].value) elif row[ 1 ].value = = data or row[ 2 ].value = = data: flag = True print (row[ 0 ].value) if not flag: print ( "通讯录中没有此人或手机号!" ) search() # 排序 def sort(): s = input ( "请输入正序或逆序(正序输入F,逆序输入T):" ) if s = = "F" : flag = False elif s = = "T" : flag = True data = [] w1, w2 = openFile() for row in w1.rows: data1 = [] for cell in row: data1.append(cell.value) data.append(data1) data.sort(key = lambda x: x[ 0 ], reverse = flag) w2.remove(w1) w1 = w2.create_sheet() for i in data: w1.append(i) w2.save(fn) # 循环函数 while True : showMenu() num = int ( input ( "请输入操作序号:" )) if num = = 1 : addData() elif num = = 2 : changeData() elif num = = 3 : delete() elif num = = 4 : search() elif num = = 5 : sort() elif num = = 6 : print ( "再见!" ) break else : print ( "输入的序号不在范围内!" ) |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/qq_45939329/article/details/118051511