您现在的位置是:网站首页> 编程资料编程资料

python实现简单通讯录管理系统_python_

2023-05-26 338人已围观

简介 python实现简单通讯录管理系统_python_

本文实例为大家分享了python实现通讯录管理系统的具体代码,供大家参考,具体内容如下

=====欢迎使用通讯录管理系统=====
1.添加
2.修改
3.册除
4.查询
5.排序
6.退出
=========================

请选择你要执行的操作的序号,具体要求:

1)通讯录要以文件的形式存储在硬盘上(比如D:\tongxunlu) ,每一条数据(联系人姓名和手机号码)存储一行,如果一个联系人有多个手机号,则都存储在同一行,即通讯录中每个联系入的数据占一行。

2)系统运行时初始菜单如上,根据用户选择的序号执行相应的操作:

添加功能:提醒角户输入姓名和手机号码,同时进行手机号码格式检查,合法则该姓名和手机号码插入到通讯录最后一行。
修改功能:根据用户指定的联系人姓名修改其手机号码,修改后保存文件。 删除功能:根据用户输人的姓名删除该条记录。
查询功能:可以根据联系人姓名查询其手机号,也可以根据手机号查询联系人姓名。 排序功能:要求用户选择按联系人姓名升序或降序,对通讯录进行排序。
退出功能:结束程序的运行。 注意:只有选择序号6(退出)时,程序的运行才会结束,否则一直循环等待用户进行增删改查操作。

这里我利用openpyxl对Excel操作

源码:

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("输入的序号不在范围内!")

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

-六神源码网