python 教程 第十四章、 地址薄作业

第十四章、 地址薄作业

#A Byte of Python
#!/usr/bin/env python
import cPickle
import os
#define the contacts file, list
global file_contacts
global list_contacts
file_contacts = 'AddressBook.txt'
list_contacts = []
#delete the file
try:
    file_path = os.getcwd() + os.sep + file_contacts
    if os.path.isfile(file_path):
        os.remove(file_contacts)
        f = file(file_contacts,'w')
        f.close()
     #define the class of contacts and implement the methods
    class class_contacts:
        def __init__(self, list_contacts):
            self.contacts = list_contacts
        def append(self, name, mail):
            dict_contacts = {'Name': name, 'Mail': mail}
            self.contacts.append(dict_contacts)
        def find(self, name):
            found = False
            for instance_contacts in list_contacts:
                if name == instance_contacts['Name']:
                    found = True
                    print " Found:", name, ", PASS"
                    break
            if not found:
                print " Found:", name, ", FAIL"
        def modify(self, name, mail):
            for instance_contacts in list_contacts:
                if name == instance_contacts['Name']:
                    instance_contacts['Mail'] = mail
                    break
        def delete(self, name):
            index = -1
            for instance_contacts in list_contacts:
                index += 1
                if name == instance_contacts['Name']:
                    del list_contacts[index]
        def show(self):
            for list in list_contacts:
                print list
        def save(self):
            fa = file(file_contacts, "a")
            cPickle.dump(self.contacts, fa)
            fa.close()
    i = class_contacts(list_contacts)
    i.append('joan', 'joan@123.com')
    i.append('adny', 'adny@123.com')
    i.append('xixi', 'xixi@123.com')
    i.find('joan')
    i.find('joab')
    print "Original List:"
    i.show()
    print "after modify adny"
    i.modify('adny', 'adnX@123.com')
    i.show()
    print "after del joan"
    i.delete('joan')
    i.show()
    i.save()
except TypeError:
    print "TypeError"
except:
print "Other Error occured"

  

时间: 2024-12-21 00:18:13

python 教程 第十四章、 地址薄作业的相关文章

python 教程 第二十二章、 其它应用

第二十二章. 其它应用 1)    Web服务 ##代码 s 000063.SZ ##开盘 o 26.60 ##最高 h 27.05 ##最低 g 26.52 ##最新 l1 26.66 ##涨跌 c1 -0.04 ##涨幅 p2 -0.15% ##总手 v 9190865 ##日期 d1 6/15/2011 ##时间 t1 3:00am #!/usr/bin/env python from time import ctime from urllib import urlopen import

python 教程 第十二章、 标准库

第十二章. 标准库 See Python Manuals ? The Python Standard Library ? 1)    sys模块 import sys if len(sys.argv) < 2: print 'No action specified.' sys.exit() if sys.argv[1].startswith('--'): option = sys.argv[1][2:] if option == 'version': print 'Version 1.2' el

python 教程 第十六章、 正则表达式

第十六章. 正则表达式 1)    匹配多个表达式 记号  re1|re2 说明  匹配正则表达式re1或re2 举例  foo|bar  匹配  foo, bar 记号  {N} 说明  匹配前面出现的正则表达式N 举例  [0-9]{3}  匹配  2)    匹配单个/多个/范围内字符 记号  . 说明  匹配任何字符(换行符除外) 举例  b.b  匹配  b和b中间有一个任意字符bab, bcb, bbb 举例  .. (匹配任何两个字符)  匹配  xx, ab 记号  [-] 说明

python 教程 第十九章、 图形界面编程

第十九章. 图形界面编程 import Tkinter top = Tkinter.Tk() hello = Tkinter.Label(top, text='Hello World!') hello.pack() quit = Tkinter.Button(top, text='QUIT',command=top.quit) quit.pack(fill=Tkinter.X, expand=1) Tkinter.mainloop()

第十四章 数组[《.net框架程序设计》读书笔记]

.net框架|笔记|程序|设计|数组 第十四章 数组. 内容摘要: 本章讨论了数组的方方面面,对于这种常用类型进行深入研究. 一. 数组简介 三种类型:一维数组.多维数组.交错数组(jagged aray) l 一维数组: Int32[] myIntegers; myIntegers = new Int32[100]; l 多维数组: Int32[,] myIntegers; myIntegers = new Int32[100,100]; l 交错数组:交错数组不受CLS支持 Point[][

ArcGIS for Desktop入门教程_第四章_入门案例分析 - ArcGIS知乎-新一代ArcGIS问答社区

原文:ArcGIS for Desktop入门教程_第四章_入门案例分析 - ArcGIS知乎-新一代ArcGIS问答社区 1 入门案例分析 在第一章里,我们已经对ArcGIS系列软件的体系结构有了一个全面的了解,接下来在本章中,将通过一个案例来熟悉ArcGIS for Desktop的使用,从解决问题的过程中,逐渐适应ArcGIS桌面的界面和操作方式. 本章的练习数据是一个住宅小区的简单平面示意图,需要在已有的基础上把楼房的轮廓补充完整,并加以整饰,完成一幅地图. 1.1 打开地图文档并浏览

精通ios开发 第七...-精通iOS开发 第七版 第十四章 书上例子错误

问题描述 精通iOS开发 第七版 第十四章 书上例子错误 精通iOS开发 第7版 十四章 书上例子在Xcode7.2上运行不了!怎么改? 解决方案 在哪里买的书,赶快要求退货吧,噗次 解决方案二: 7.2的语法可能有更新了 你需要修正代码 毕竟书是对应老版本xcode

Senparc.Weixin.MP SDK 微信公众平台开发教程(十四):请求消息去重

原文:Senparc.Weixin.MP SDK 微信公众平台开发教程(十四):请求消息去重 为了确保信息请求消息的到达率,微信服务器在没有及时收到响应消息(ResponseMessage)的情况下,会多次发送同一条请求消息(RequestMessage),包括MsgId等在内的所有文本内容都是一致的. 这种机制确保了在诸如网络状况不佳的情况下消息的回复成功率,但是有时候由于服务器负荷.本身请求过程就需要好几秒才能完成等情况,多次重复的消息反而成了服务器的负担,甚至对业务和数据也可能造成影响.

连载,LINQ兵法十四章,1(1of1)

问题描述 第一章从类型到接口先看一个简单的程序:intx=1;objecty=2;Console.WriteLine(x.GetType());Console.WriteLine(y.GetType()); 运行结果:System.Int32System.Int32我们定义了两个变量,x和y,它们都是整数.现在的问题是,intx和objectx这两种定义究竟有什么不同.我们利用VS的智能感知提示来观察下:这是x的这是y的我们发现y只有4个方法,而x有6个.CompareTo和GetTypeCod