视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Python实现命令行通讯录
2020-11-27 14:16:37 责编:小采
文档
 1、实现目标

编写一个命令行通讯录程序,可以添加、查询、删除通讯录好友及电话

2、实现方法

创建一个类来表示一个人的信息。使用字典存储每个人的对象,名字作为键。
使用pickle模块永久地把这些对象存储下来。
使用字典内建的方法添加、删除修改人员信息。

3、思维导图

4、编写伪代码

# 1.创建字典用来存储通讯录信息
# 2.创建人员类,包含姓名、关系、电话三个属性
# 3.创建操作类,包含增加、查询、删除人员,退出,保存并退出五个方法
# 4.程序运行
# 5.判断通讯录文件是否存在
# 6.如果存在,将文件读取到personDictionary字典中
# 7.如果不存在,提示并创建
# 8.while循环等待读取指令
 # 9.如果指令为addperson,添加通讯录人员
 # 10.如果指令为delperson,删除通讯录人员
 # 11.如果指令为search,查找通讯录人员
 # 12.如果指令为quit,不保存退出程序
 # 13.如果指令为sq,保存更改并退出程序

5、根据伪代码编写代码

import pickle as p
import os

# 1.创建字典用来存储通讯录信息
personDictionary= {'name':{'relationship':'','tel':''}}
relationshipList=['家人','朋友','同事']

# 2.创建人员类,包含姓名、关系、电话三个属性
class Person:
 def __init__(self,name,relationship= relationshipList[1],tel='None'):
 personDictionary[name]= {'relationship':relationship,'tel':tel}
# 3.创建操作类,包含增加、查询、删除人员,退出,保存并退出五个方法
class Operation:
 def Addperson():
 addname= input('请输入姓名:')
 addrelationship= int(input('请选择分组(0:家人,1:朋友,2:同事):'))
 addtel= input('请输入电话:')
 Person(addname,relationshipList[addrelationship],addtel)
 def Delperson():
 name= input('请输入要删除的联系人姓名:')
 del personDictionary[name]
 def Search():
 name= input('请输入要查找的联系人的姓名:')
 if name in personDictionary:
 print('姓名:%s,关系:%s,电话:%s' %(name,personDictionary[name]['relationship'],personDictionary[name]['tel']))
 else:
 print('联系人不存在。')
 def Quit():
 running= False
 def SaveQuit():
 f= open(addressbookFile,'wb')
 p.dump(personDictionary,f)
 f.close()
 running= False
# 4.程序运行
running= True
# 5.判断通讯录文件是否存在
addressbookFile= 'addressbook.data'
# 6.如果存在,将文件读取到personDictionary字典中
if os.path.exists(addressbookFile):
 f= open(addressbookFile,'rb') 
 personDictionary= p.load(f)
# 7.如果不存在,提示并创建
else:
 jCommand= input('未找到通讯录文件,是否创建?yes/no ')
 if jCommand== 'yes':
 f= open(addressbookFile,'wb')
 p.dump(personDictionary,f)
 f.close()
 elif jCommand== 'no':
 running= False
# 8.while循环等待读取指令
while running:
 command= input('请输入指令:')
 # 9.如果指令为addperson,添加通讯录人员
 if command== 'addperson':
 Operation.Addperson()
 continue
 # 10.如果指令为delperson,删除通讯录人员
 elif command== 'delperson':
 Operation.Delperson()
 continue
 # 11.如果指令为search,查找通讯录人员
 elif command== 'search':
 Operation.Search()
 continue
 # 12.如果指令为quit,不保存退出程序
 elif command== 'quit':
 Operation.Quit()
 break
 # 13.如果指令为sq,保存更改并退出程序
 elif command== 'sq':
 Operation.SaveQuit()
 break
 else:
 print('未找到指令!')
 continue

6、演示

Python3 addressbook.py 
请输入指令:search
请输入要查找的联系人的姓名:zhangsan
联系人不存在。
请输入指令:addperson
请输入姓名:zhangsan
请选择分组(0:家人,1:朋友,2:同事):1
请输入电话:1234567
请输入指令:search
请输入要查找的联系人的姓名:zhangsan
姓名:zhangsan,关系:朋友,电话:1234567
请输入指令:sq
$ Python3 addressbook.py 
请输入指令:search
请输入要查找的联系人的姓名:zhangsan
姓名:zhangsan,关系:朋友,电话:1234567
请输入指令:addperson
请输入姓名:lisi
请选择分组(0:家人,1:朋友,2:同事):1
请输入电话:1234567
请输入指令:q
未找到指令!
请输入指令:quit
$ Python3 addressbook.py 
请输入指令:search
请输入要查找的联系人的姓名:lisi
联系人不存在。
请输入指令:search
请输入要查找的联系人的姓名:zhangsan
姓名:zhangsan,关系:朋友,电话:1234567
请输入指令:quit

更多Python实现命令行通讯录相关文章请关注PHP中文网!

下载本文
显示全文
专题