python程序实例电话本-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')

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值