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

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

主要学习内容:

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

  • pickle模块

pythonpickle模块提供了一个简单的持久化功能。可以将对象以文件的形式存放在磁盘上。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('谢谢使用')

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值