[python菜鸟入门教程]Python入门教程之Python的电话本程序代码

更新时间:2019-09-25    来源:python    手机版     字体:

【www.bbyears.com--python】


本例是Python基础示例。涉及Python基础,包括语法、字典型数据结构、类、引入库、pickle实现的存储器、异常处理等。

示例是一个电话本。可以对电话本进行增加、删除、修改、获取列表和获取单人的。

Python中,Pickle和cPickle都可以完成存储器的任务,不过cPickle是C语言所写,据称性能高于Pickle1000倍
    Python中的Pickle是把一个对象存入文件中。作为完全面向对象的语言,在声明/初始化一个变量的时候,比如字典,也就是关联数组,Python其实是在实例化一个字典对象。那么Pickle就可以把这个字典对象存入一个文件,读出来的时候不但这个字典是完整的数据,而且可以继续使用这个字典对象的方法。

 Python是用缩进来时别语句块的。因为我是在VIM下写好复制出来的,所以在博客看到的可能缩进会有问题。

#引入pickle库。cPickle比Pickle快1000倍
import cPickle as pickle
#import Pickle as pickle

#电话本类
class Address:
    #初始化
    def __init__(self):
        #把数据存到那个文件里
     self.filename = "list.data"
     f = file(self.filename)
        #如果文件是新建的或者是空内容的,则初始化为一个空的字典(关联数组)
        try:
            self.lists = pickle.load(f)
        except:
            print "Address Book is empty.initializing....."
            self.lists = {}
     f.close()
    #添加联系人
    def add(self, name, age, mobile, mail):
     newUser = {"name":name, "age":age, "mobile":mobile, "mail":mail}
     self.lists[name] = newUser
    #删除联系人
    def delete(self, name):
        if name in self.lists:
            del self.lists[name]
            print "delete ", name
        else:
            print "No exists ", name
    #获取列表
    def getList(self):
        print "Address Book List:"
        print self.lists
    #获取指定姓名的联系人
    def getOne(self, name):
        if name in self.lists:
            print self.lists[name]
        else:
            print "Not Exists:", name
    #修改联系人
    def edit(self, name, key, value):
     self.lists[name][key] = value
    #类运行结束,执行特殊方法__del__,也就是析构函数
    def __del__(self):
        f = file(self.filename, "w")
        pickle.dump(self.lists, f)
        f.close()

#初始化电话本类
obj = Address()
#添加一个联系人
obj.add("lane", 23, 18500000000, "lixuan868686@163.com")
#获取所有联系人的列表
obj.getList()
#获取lane这个人的联系方式
obj.getOne("lane")
#获取xiaoming这个人的联系方式
obj.getOne("xiaoming")
//修改lane这个人的年龄为24
obj.edit("lane", "age", "24")

本文来源:http://www.bbyears.com/jiaocheng/69398.html

热门标签

更多>>

本类排行