# 地址簿程序
import pickle as p
import sys
class Person: #实际上不用类也可实现
def __init__(self,name,address):
self.name=name
self.address=address
def __Print__(self):
print('%s 的地址为:%s'%(self.name,self.address))
book={}
filename='MyAddressBook.txt'
try:
f=open(filename,'rb')
book=p.load(f)
f.close
except EOFError:
pass
#如果f为空的话会报错,实际上影响不大,所以这里跳过
print('-——————————————-')
print('操作编号:')
print('1->添加联系人\n2->删除联系人')
print('3->修改联系人\n4->查找联系人')
print('5->打印当前地址列表\n其他->保存文件')
print('-——————————————-')
while True:
sel=input('请选择要进行的操作:')
if sel=='1':
name=input('>输入联系人的姓名:')
address=input('>输入联系人的地址:')
book[name]=address
print('已添加%s!'%name)
elif sel=='2':
name=input('>输入联系人的姓名:')
if name in book:
del book[name]
else:
print('该联系人不存在!')
print('已删除%s!'%name)
elif sel=='3':
name=input('>输入联系人的姓名:')
address=input('>重新输入联系人的地址:')
book[name]=address
print('已修改%s!'%name)
elif sel=='4':
name=input('>输入联系人的姓名:')
if name in book:
print('%s 的地址为:%s'%(name,book[name]))
else:
print('该联系人不存在!')
elif sel=='5':
if 0==len(book):
print('地址簿是空的呢!')
else:
print('*****************')
print('>>>>>地址列表<<<<\n')
for name,address in book.items():
print('%s:%s'%(name,address))
print('\n*****************')
else:
break
f=open(filename,'wb')
p.dump(book,f)
f.close
print('保存完成!')
f=open(filename,'rb')
b=p.load(f)
f.close
#这个地方加这几行代码,是因为不加的话会出现问题:
#当f为空之后,下一次运行就算输入数据也不会被保存。
#不知道为什么会这样。
sys.exit()
Python实战1——address_book.py
最新推荐文章于 2022-09-29 12:34:02 发布