本文为大二人工智能专业学生,本文仅为个人学习路线的记录,如有问题或疏漏,欢迎指正!如有侵权请联系我个人微信:GZE08_myh
主要学习内容:
python的pickle模块提供了一个简单的持久化功能。可以将对象以文件的形式存放在磁盘上。但pickle序列化后的数据,可读性差,人一般无法识别。
可以通过以下代码在终端安装:
pip install pickle
#Pickle库中的关键函数:
pickle.dump(obj, file[, protocol])
pickle.load(file)
主要需要掌握不同的异常,和编写指定异常(单个异常或多个异常)出现后的处理,减少程序崩溃的概率
常见异常:
这方面在本个小实验中只需要了解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('谢谢使用')