LaneBlog

Python学习第一阶段:Python的电话本

Python学习第一阶段:Python的电话本。涉及了Python的基础内容,数据类型中的字典,类,存储器等。对电话本进行查询,增加,删除,修改的功能。

Python|Python基础|Python示例

本例是Python基础示例。涉及Python基础,包括语法、字典型数据结构、类、引入库、pickle实现的存储器、异常处理等。    示例是一个电话本。可以对电话本进行增加、删除、修改、获取列表和获取单人的。    Python中,Pickle和cPickle都可以完成存储器的任务,不过cPickle是C语言所写,据称性能高于Pickle1000倍    Python中的Pickle是把一个对象存入文件中。作为完全面向对象的语言,在声明/初始化一个变量的时候,比如字典,也就是关联数组,Python其实是在实例化一个字典对象。那么Pickle就可以把这个字典对象存入一个文件,读出来的时候不但这个字典是完整的数据,而且可以继续使用这个字典对象的方法。    Python是用缩进来时别语句块的。因为我是在VIM下写好复制出来的,所以在博客看到的可能缩进会有问题。 [code] #引入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') [/code]

点击:6340
点赞:34
点踩:20