第十四章、 地址薄作业

#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"

  

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

  1. 进击的Python【第十四章】:Web前端基础之Javascript

    进击的Python[第十四章]:Web前端基础之Javascript 一.javascript是什么 JavaScript 是一种轻量级的编程语言. JavaScript 是可插入 HTML 页面的编 ...

  2. Flask 教程 第十四章:Ajax

    本文翻译自The Flask Mega-Tutorial Part XIV: Ajax 这是Flask Mega-Tutorial系列的第十四部分,我将使用Microsoft翻译服务和少许JavaSc ...

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

    第二十二章. 其它应用 1)    Web服务 ##代码 s 000063.SZ ##开盘 o 26.60 ##最高 h 27.05 ##最低 g 26.52 ##最新 l1 26.66 ##涨跌 c ...

  4. python 教程 第十五章、 结构布局

    第十五章. 结构布局 #!/usr/bin/env python #(1)起始行 "this is a module" #(2)模块文档 import sys #(3)模块导入 d ...

  5. python 教程 第十二章、 标准库

    第十二章. 标准库 See Python Manuals ? The Python Standard Library ? 1)    sys模块 import sys if len(sys.argv) ...

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

    第十九章. 图形界面编程 import Tkinter top = Tkinter.Tk() hello = Tkinter.Label(top, text='Hello World!') hello ...

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

    第十六章. 正则表达式 1)    匹配多个表达式 记号  re1|re2 说明  匹配正则表达式re1或re2 举例  foo|bar  匹配  foo, bar 记号  {N} 说明  匹配前面出 ...

  8. C#图解教程 第十四章 事件

    事件 发布者和订阅者源代码组件概览声明事件订阅事件触发事件标准事件的用法 通过扩展EventArgs来传递数据移除事件处理程序 事件访问器 事件 发布者和订阅者 很多程序都有一个共同的需求,既当一个特 ...

  9. C#图解教程 第二十四章 反射和特性

    反射和特性 元数据和反射Type 类获取Type对象什么是特性应用特性预定义的保留的特性 Obsolete(废弃)特性Conditional特性调用者信息特性DebuggerStepThrough 特 ...

随机推荐

  1. 关于spyder的一些用法

    目前还不会用spyder,感觉不习惯,也没怎么用MATLAB 能记住几点算几点吧 1,双击程序左侧栏,加断点 1,按住Ctrl,点击函数,进入函数

  2. [AngularFire 2] Protect Write Access Using Security Rules

    We cannot allow un-auth user to change the database data as they want, for Firebase, it is easy just ...

  3. [Linux] Use find to search for filename patterns

    Learn how to use find to identify filenames matching specified patterns. We'll use find to identify ...

  4. [Django] ModelViewSet from rest_framework and Router

    To build rest api easily, we can use ModelViewSet from rest_framework. It provides GET, POST, DELETE ...

  5. js如何实现动态的在表格中添加和删除行?(两种方法)

    js如何实现动态的在表格中添加和删除行?(两种方法) 一.总结 1.table元素有属性和一些方法(js使用) 方法一:添加可通过在table的innerHTML属性中添加tr和td来实现 tab.i ...

  6. NSURLSession网络接口

    URLSession URLSession NSURLSession是iOS7中新的网络接口,与NSURLConnection是并列的. 当程序在前台时,NSURLSession与NSURLConne ...

  7. Android网络应用之Socket(一)

    socket编程是网络通信的一个基础应用.不管是手机端还是PC端都须要socket技术来建立网络通信. 在本章小编主要从下面几个方面来介绍socket的相关知识: 各自是"什么是socket ...

  8. 学习鸟哥的Linux私房菜笔记(6)——过滤器、输入输出及管道

    一.过滤器 Linux中的应用工具分为三种: 交互工具 过滤器 编辑器 能够接受数据,过滤再输出的工具,称之为过滤器 对过滤器和进程,存在着输入源与输出对象 二.输入.输出.重定向 输入:过滤器的数据 ...

  9. js取json对象的键和值

    //构建一个json对象 var pinpai = { "0":{"美的":49,"三星":35,"海信":25,&qu ...

  10. Swagger 专题

    随着互联网技术的发展,现在的网站架构基本都由原来的后端渲染,变成了:前端渲染.前后端分离的形态,而且前端和后端在各自的技术道路上越走越远. 前端和后端的唯一联系,变成了API接口:API文档成了前后端 ...