栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

完成一个简易的通讯录(基于python)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

完成一个简易的通讯录(基于python)

本文为大二人工智能专业学生,本文仅为个人学习路线的记录,如有问题或疏漏,欢迎指正!如有侵权请联系我个人微信:GZE08_myh

主要学习内容:

  1. pickle模块
  2. 文件操作
  3. 异常处理

  • pickle模块

python的pickle模块提供了一个简单的持久化功能。可以将对象以文件的形式存放在磁盘上。但pickle序列化后的数据,可读性差,人一般无法识别。

可以通过以下代码在终端安装:

pip install pickle

#Pickle库中的关键函数:

pickle.dump(obj, file[, protocol])
pickle.load(file)

  • 异常处理

主要需要掌握不同的异常,和编写指定异常(单个异常或多个异常)出现后的处理,减少程序崩溃的概率

常见异常:

  1. NameError
  2. ZeroDivisionError
  3. SyntaxError
  4. IndexError
  5. IOError
  6. AttributeError
  7. ValueError

  • 文件操作

这方面在本个小实验中只需要了解rb,wb等打开方式的问题即可,思路上主要使用字典来保存通讯录数据

下列为源代码:

import pickle

print('欢迎进入通讯录程序')
print('1:查询联系人资料')
print('2:插入新的联系人')
print('3:删除已有联系人')
print('4:显示所有联系人')
print('5:退出通讯录程序')

try:
    txl = open('通讯录.pkl', 'rb')
except FileNotFoundError:
    txl = open('通讯录.pkl', 'wb')
    print('第一次初始化完成,请重新打开')
try:
    dict1 = pickle.load(txl)
except EOFError:
    dict1 = {}
txl.close()

while True:
    try:
        a = int(input('请输入相关的指令代码:'))
    except ValueError:
        print('输入有误,请重新输入')
        continue

    if a == 1:
        name = str(input('请输入联系人姓名:'))
        if name not in dict1.keys():
            print('你没有添加该联系人')
        else:
            print(dict1[name])

    elif a == 2:
        name = input('请输入联系人姓名:')
        number = input('请输入联系人电话:')
        if name in dict1.keys():
            YN = input('该用户已经存在,是否修改电话号码(Y/N)')
            if YN == 'Y':
                number = input('请输入新的电话号码:')
                dict1[name] = number
            else:
                continue
        else:
            dict1[name] = number

    elif a == 3:
        name = str(input('请输入需要删除的联系人姓名:'))
        if name not in dict1.keys():
            print('你没有该联系人')
        else:
            del dict1[name]
    elif a == 4:
        print(dict1)
    else:
        txl = open('通讯录.pkl', 'wb')
        pickle.dump(dict1, txl)
        txl.close()
        break

print('谢谢使用')

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/422533.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号