首页 热点 业界 科技快讯 数码 电子消费 通信 前沿动态 电商

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

2022-05-17 11:14:09 来源 : 软件开发网

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

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

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

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

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

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

这里我利用openpyxl对Excel操作

源码:

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

标签: 手机号码 管理系统 保存文件

相关文章

最近更新
观焦点:超萌相机 2023-03-01 12:29:37
海南百货网 2023-03-01 12:13:44
焦点热讯:宜点充 2023-02-28 10:10:16
天天关注:小铺CEO 2023-02-28 10:07:13
【世界聚看点】KaFit 2023-02-28 09:31:37
葱天下 2023-02-28 09:17:03
渔界竞钓 2023-02-28 08:15:29
焦点快看:鲸奇视频 2023-02-28 06:30:37
环球热议:萝小逗 2023-02-27 23:25:49
简讯:小码公交 2023-02-27 23:16:12
彼岸花 2023-02-27 22:32:52
时时夺宝 2023-02-27 21:37:50
天天动态:袜之源 2023-02-27 21:29:50
天天资讯:AI空气 2023-02-27 20:19:46
世界时讯:绘读 2023-02-27 20:19:41
看点:一元得购 2023-02-27 19:26:28