实现自定义class的迭代器,只需实现__iter__ 与next() 方法,其中iter方法只需返回自身
class iterDemo():
def __init__(self,name):
self.name=name
self.index=len(name)
def __iter__(self):
return self
def next(self):
if self.index==0:
raise StopIteration
self.index = self.index-1
return self.name[self.index]
for char in iterDemo('spanorz'):
print char
生成器,用于创建迭代器的简单和强大的工具
使用yield返回字符串,但是继续循环
def reve(data):
for index in range(len(data),-1,-1):
yield index
for char in reve("123456789"):
print char
生成器将会自动创建__iter__()与next()方法
生成器表达式
使用一些内置的函数来进行..如set max dict sum zip等方法,配合链表的使用
标准库介绍
操作系统接口 Operating System Interface
需要import os模块
导入时需要注意,不要使用from os import *, 放置os.open覆盖原来的open内置函数
在使用这些模块时,使用dir和help内置函数,可以提供非常有用的帮助
针对日常的文件和目录管理任务,shutil提供了易于使用的高级接口
如: 复制文件 copyfile.. 和移动文件 move..
glob模块提供了从指定目录,搜索指定通配符的文件列表(扩展名)
注意在读取中文文件名时,需要使用gbk进行decode
sys.stderr.write(".....") 用于输出错误信息
脚本的中止使用sys.exit();
字符串正则匹配 re模块,需要import
常用的方法有findall,与sub
如果只需要简单的功能,应该首先考虑字符串方法,简单而且易于阅读和调试
数学运算..math 模块,提供对底层C函数库的访问
随机数..random模块 提供了常用的方法如
choice,random(),sample,randrange等方法
互联网访问模块,有几个模块组成,最常用的包括
urllib2--从urls接受数据
smtplib--发送电子邮件模块
同样可以使用decode进行解码
如
import urllib2
for line in urllib2.urlopen("http://www.baidu.com"):
print line.decode("gbk")
日期和时间 Dates and Times, datetime模块
now = date.today() //也包括了对时间的格式化处理
如:
from datetime import date
date_1=date(2008,7,16);
date2=date.today()-date_1
print date2
格式化操作 --使用date_1.strftime()方法
print date_1.strftime("%Y年-%m月-%d日") //注意大小写
数据压缩 Data Compression
使用zlib,gzip,bz2,zipfile,tarfile等模块
常用方法..zlib.compress()压缩, decompress()解压缩,crc32获取crc码
如:
c="ah dahdj al djla jdl aj douq ej"
print len(c)
t=zlib.compress(c);
print len(t)
print zlib.crc32(c)
不过不知道为什么,压缩后的反而比较长
性能度量,timeit模块,主要为Timer类, 还有profile和pstats模块提供了针对更大代码块的时间度量工具
质量控制 Quality Control---主要为代码测试
doctest模块--通过勺内程序内嵌的文档字符串执行测试
测试的方法如下
import doctest
def aver(value):
"""
>>> aver(30) //注意aver()前必须加入>>> 注意空格,用于模拟方法执行
330
"""
return value
doctest.testmod(); //可以在这里之前加上 print,用于正确情况下也有输出
注意测试的注释,需要都放置在对应的方法体内,否则有可能出错,可以使用>>> 对一个方法进行多次测试
unittest模块,不像doctest模块那么容易使用,不过可以放置在一个独立的文件中提供更全面的测试集
xmlrpclib 和SimpleXmlRPCServer模块提供了对远程过程的调用--类似WebService
email包是一个邮件消息管理库,同时实现了构建和解析负责消息结构,如:互联网编码和头协议的工具集
xml.dom与xml.sax包提供了对xml的解析,提供了对xml信息交换格式的支持
国际化有gettext,locale和codecs包支持
标准库概览2
该部分的更高级的模块,很少出现在小脚本中
格式化输出 Output Formatting
repr,用于输出解释器所使用的格式
pprint --pretty printer 美化打印,使得数据结构显示的更清晰,与链表的等关联比较密切
如:
import pprint
t=[12313,324,344,556]
pprint.pprint(t,width=5)
textwrap模块,格式化文本字段以适合设定的屏幕宽度
如
print textwrap.fill(str(dir(textwrap)), 30)
locale库,提供不同国家的数据格式,进行格式化字符串输出
Templating模板
使用方式:
from string import Template //注意导入的方式
t=Template('${name} is a $thing')
print t.substitute(name='dog',thing='animal')
在建立模板时候,使用$xx作为占位符,填充时候使用key=value的形式进行赋值,{}不是必须的,适应$$创建一个
单独的$号
如果出现key缺少值的情况下,substitute方法会抛出KeyError异常,使用safe-substitute会更安全一些,缺少
的占位符会被保留输出
可以通过继承Template类,通过设置delimiter类,如:
class bsT(Template):
delimiter='&'
t=bsT('&{name} is a &thing')
print t.substitute(name='dog',thing='animal')
模板可以广泛的应用在XML,报表和HTML中
使用二进制记录层
struct模块提供pack()和unpack()函数用于变长二进制记录格式...暂不研究
多线程 Multi-threading 使用threading模块
可以通过继承 threading.Thread类实现,与Java类似,需要实现run方法,还可以使用Queue对象调度线程之间的
请求
日志系统 Logging模块
最简单的用户就是记录信息并发送到一个文件或者sys.stderr,记录的级别和Java类
似,debug,info,warning,error,critical等
默认信息是发送到标准错误流之中
弱引用 Weakref模块
用于跟踪对象,在对象被回收后,将会在弱引用表上删除,并触发回调
注册的方式:
d=weakref.WeakValueDictionary();
d['primary'] = a //其中a为需要监听的对象,primary为指向的key
链表工具 Lists Tool
array模块提供了类似链表的array()对象,它仅仅是存储数组,更为紧凑
clloections模块提供了类似链表的deque()对象,从左边添加append和pop弹出更快,当时内部查询更慢,
这些对象更是用于对象实现和广度优先的树搜索
该库还提供了bisect 这样的模块以操作存储链表
heapq提供了基于正规链表的堆的实现,最小值总是保持在0点
十进制浮点算法
使用decimal模块,提供高精度的运算
from decimal import *
print Decimal(1)/Decimal(7)
分享到:
相关推荐
Python Tutorial 入门指南,书籍不错,供参考
Python Tutorial Python 入门指南
The Python Tutorial 1 1. Whetting Your Appetite 4 2. Using the Python Interpreter 6 2.1. Invoking the Interpreter 7 2.1.1. Argument Passing 8 2.1.2. Interactive Mode 8 2.2. The Interpreter and Its ...
Python Tutorial 新手入门指南 PDF Python Tutorial 新手入门指南 PDF
python教程,对python的用途以及python的概念作了介绍,并按照流程控制、数据结构、Modules,错误和异常以及class做了详细的描述
Python Tutorial Python 入门指南 Release 2.5b2
python_tutorial 入门 pdf 很小才2m,有标签
Python Tutorial Python(Python Tutorial Python 入门指南 Release 2.5b2 英文)
Python Tutorial ——Python新手入门指南 PDF版,内容包括: Whetting Your Appetite 开胃菜 Using the Python Interpreter使用Python解释器 More Control Flow Tools 流程控制 Data Structures数据结构...
Python Tutorial Python入门指南
安装 sudo aptitude install python-gtk2 文档 http://www.pygtk.org/pygtk2tutorial/ch-Introduction.html#sec-ExploringPygtk python入门基础教程:python-gtk全文共15页,当前为第2页。 第一个例子 python入门...
本文档根据官方文档 http://www.pythondoc.com/pythontutorial3/ 和 中文文档 http://www.pythondoc.com/pythontutorial3/ 翻译与整理
关于Python官网上的Tutorial的中文翻译,好像有几个版本。有一个是中英文对照(非左右对照,而是中英间杂),汉字还全是楷体,看着很不舒服;有一个倒是纯中文的,但是现在方便阅读的只有HTML版本,我根据后一个版本...
Python3.4 的入门指南,官方文档。...Python 入门指南 ( The Python Tutorial ) Python 入门指南是由Python官方发布的一份教程。他也被麻省理工学院所使用。有Python 2.7以及Python 3.0的版本提供。
《Python Tutorial Python》
Python Tutorial 3.8.1教程中文 官方文档 Python Tutorial 发布3.8.1 Guido van Rossum and the Python development team 二月06, 2020 Python Software Foundation Email: docs@python.org
Python老爹的作品,Python爱好者案头必备之书,不必多说了,呵呵。
The Python Tutorial --python 的官方手册,建议大家好好读,也可以下载中文版学习!
python笔记 Python笔记学习笔记 :memo: 介绍 有时候想找一个东西(写法),但当下却忘记关键字,所以整理一篇学习笔记,要找资料的时候也比较方便。 有些是网路上找的范例,然后自己再修修改改,或者去参考一些...
Python 入门指南 v3.4 中文手册