【前言】学习 Python 已经有一段时间了,相关的书籍资料也下载了不少,但是没有一本完整的看完,也没有编出一个完整的程序。今天下午比较清闲就把《简明 Python 教程》看了一遍,然后根据书里面提的要求编写了一段命令行通讯录的小程序。下面是编写的思路以及代码,欢迎感兴趣的同学交流探讨。
编写一个命令行通讯录程序,可以添加、查询、删除通讯录好友及电话
- #1.创建字典用来存储通讯录信息#2.创建人员类,包含姓名、关系、电话三个属性#3.创建操作类,包含增加、查询、删除人员,退出,保存并退出五个方法#4.程序运行#5.判断通讯录文件是否存在#6.如果存在,将文件读取到personDictionary字典中#7.如果不存在,提示并创建#8.
- while循环等待读取指令#9.如果指令为addperson,添加通讯录人员#10.如果指令为delperson,删除通讯录人员#11.如果指令为search,查找通讯录人员#12.如果指令为quit,不保存退出程序#13.如果指令为sq,保存更改并退出程序
- 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
- 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
来源: http://www.cnblogs.com/kallan/p/5782313.html