简明Python教程自学笔记——命令行通讯录
【前言】学习Python已经有一段时间了,相关的书籍资料也下载了不少,但是没有一本完整的看完,也没有编出一个完整的程序。今天下午比较清闲就把《简明Python教程》看了一遍,然后根据书里面提的要求编写了一段命令行通讯录的小程序。下面是编写的思路以及代码,欢迎感兴趣的同学交流探讨。
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教程自学笔记——命令行通讯录的更多相关文章
- 《简明python教程》笔记一
读<简明Python教程>笔记: 本书的官方网站是www.byteofpython.info 安装就不说了,网上很多,这里就记录下我在安装时的问题,首先到python官网下载,选好安装路 ...
- 简明Python教程 - 学习笔记
1,第一步 cmd下运行python文件 :python 文件名.(在文件目录下) 退出python解释器:ctrl + z 或 exit() 回车 进入帮助模式:help(),退出:q 或 回车 2 ...
- 《简明 Python 教程》笔记
基础 字符串:python 中字符串可以用单引号.双引号和三个引号括起来,其中三个引号可以用来指定多行的字符串. print('hello'* 3) 连续打印 3 个 hello 格式化:print ...
- 《简明python教程》笔记二
面向对象的编程: 类和对象是面向对象编程的两个主要方面.类创建一个新类型,而对象是这个类的实例.对象可以使用普通的属于对象的变量存储数据.属于一个对象或类的变量被称为域.对象也可以使用属于类的函数来具 ...
- 《简明python教程》笔记三
图形软件(GUI工具) 可供选择的GUI: 一.PyQT 是Qt工具包的python绑定.Qt工具包是构建KDE的基石.linux下使用免费,windows下使用收费. 二.PyGTK 是GTK+工具 ...
- 学习笔记《简明python教程》
学习笔记<简明python教程> 体会:言简意赅,很适合新手入门 2018年3月14日21:45:59 1.global 语句 在不使用 global 语句的情况下,不可能为一个定义于函数 ...
- 笔记|《简明Python教程》:编程小白的第一本python入门书
<简明Python教程>这本书是初级的Python入门教材,初级内容基本覆盖,对高级内容没有做深入纠结.适合刚接触Python的新手,行文比较简洁轻松,读起来也比较顺畅. 下面是我根据各个 ...
- 简明Python教程 ~ 随书笔记
本文是阅读<简明Python教程>所做的随书笔记,主要是记录一些自己不熟悉的用法,或者所看到的比较有意思的内容,本书英文版A Byte of Python, 中文译版 简明Python教程 ...
- 《简明Python教程》学习笔记
<简明Python教程>是网上比较好的一个Python入门级教程,尽管版本比较老旧,但是其中的基本讲解还是很有实力的. Ch2–安装Python:下载安装完成后,在系统的环境变量里,在Pa ...
随机推荐
- IOS测试-Fastmonkey
目录: 一.背景 二.Fastmonkey介绍 三.Fastmonkey操作前准备 四.Fastmonkey工程配置过程 五.执行Monkey测试 六.FAQ Fastmonkey实践 一.背景: 因 ...
- gitlab 配置 ssh key
打开本地git bash,使用如下命令生成ssh公钥和私钥对 ssh-keygen -t rsa -C 'xxx@xxx.com' 然后一路回车(-C 参数是你的邮箱地址) 然后打开~/.ssh/id ...
- C#四则运算器(多态方法实现)
在上一节C#课上,我们学习了用类的继承的方式来做一个四则运算器,然而老师的代码在课上演示的效果并不理想,而且没有使用多态的思想实现,今天我们就来用多态的方式实现四则运算器. 1. 题目及要求 2. A ...
- 在Visual Studio中使用.lib和.dll的环境搭建
1 静态库和动态链接库的区别 动态链接库是在运行的时候被调用的,静态库在链接的时候被链接到最终生成的应用程序(.exe)中 静态库需要用到的文件 (.lib .h) 头文件(.h)提供接口,库文件(. ...
- Git知识点整合
Git安装 Windows上安装Git 64 位安装包下载地址 : https://github.com/git-for-windows/git/releases/download/v2.16.2.w ...
- hadoop 集群HA高可用搭建以及问题解决方案
hadoop 集群HA高可用搭建 目录大纲 1. hadoop HA原理 2. hadoop HA特点 3. Zookeeper 配置 4. 安装Hadoop集群 5. Hadoop HA配置 搭建环 ...
- mpstat命令详解
基础命令学习目录首页 原文链接:https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858775.html 简介 mpstat是Multipro ...
- Maven学习记录3——创建、编译、打包、运行项目
http://blog.csdn.net/yaya1943/article/details/48464371
- Final发布 -----欢迎来怼团队
欢迎来怼项目小组—Final发布展示 一.小组成员 队长:田继平 成员:葛美义,王伟东,姜珊,邵朔,阚博文 ,李圆圆 二.文案+美工展示 链接:http://www.cnblogs.com/js201 ...
- 论如何制做一个工程APP的测试内容
测试一般在软件开发过程中就已经开始进行了,测试越早.发现问题解决他的方案成本就越小.测试按照类型来区分可以划分为:单元测试,集成测试,系统测试.而OCUNIT是XCODE自带的单元测试工具.需要建立新 ...