实现自定义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 入门指南
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是一种高级、通用的编程语言,以其简洁、易读的语法而闻名,被广泛应用于网络爬虫、数据分析、机器学习、Web开发等多个领域。它支持多种编程范式,包括面向对象、命令式、函数式和...
英文版的Python Tutorial的翻译版 8 Classes 类 8.1 A Word About Terminology 8.2 Python Scopes and Name Spaces 8.3 A First Look at Classes 8.4 Random Remarks 8.5 Inheritance 8.6 Private Variables ...
根据提供的文件内容,我们可以提取以下知识点: ...以上内容构成了这份Python入门教程的核心知识点,涵盖了从Python语言的背景、特性、安装、环境配置、基础语法到如何开始实际的编程实践和注意事项。
Python Tutorial ——Python新手入门指南 PDF版,内容包括: Whetting Your Appetite 开胃菜 Using the Python Interpreter使用Python解释器 More Control Flow Tools 流程控制 Data Structures数据结构...
《Python Tutorial Python 入门指南 Release 2.5b2》是针对初学者的一份详尽教程,旨在帮助读者快速掌握Python 2.5版本的基本语法和编程技巧。本手册覆盖了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版本,我根据后一个版本...
"Python Tutorial Python" 提到的是一个Python的入门指南,可能是针对初学者的一个教程资源,旨在帮助用户快速理解和掌握Python的基本概念和编程技巧。 **Python的特点** 1. **易学性**:Python语法清晰,易于理解...
Python3.4 的入门指南,官方文档。...Python 入门指南 ( The Python Tutorial ) Python 入门指南是由Python官方发布的一份教程。他也被麻省理工学院所使用。有Python 2.7以及Python 3.0的版本提供。
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
The Python Tutorial --python 的官方手册,建议大家好好读,也可以下载中文版学习!
《Python Tutorial Python》这本书是Python编程语言的一份详尽指南,特别适合初学者和有一定基础的开发者使用。PDF格式使得这份教程可以方便地在各种设备上阅读和打印,便于学习和参考。 Python是一种高级编程语言...
### Python入门教程知识点详解 #### 一、Whetting Your Appetite(激发兴趣) - **简介**:本章节作为开篇,旨在通过一个简单的例子来激发读者对Python编程的兴趣。 - **示例代码**:通常会给出一个简单的Python...