首先,对一些大型模块,可以使用内置函数:
1)dir(os) 得到os模块内部的所有函数
2) help(os)返回os模块的帮助信息
os旗下的:os.chdir() os.getcwd()【get current working directory】
sys旗下的:sys.argv[x]【返回命令行调用的第x个参数,其中第0个默认为模块名,sys.argv为list】
time旗下的:time.date()【time重点放在更有效的处理和格式化输出】
math旗下的:math.pi math.log(1024,2)=10 math.cos(x) mmath.random()
re模块:字符串正则匹配
urllib2模块:urllib2.urlopen(website)
数据压缩:zlib,gzip,bz2,zipfile等模块
输出格式:
repr模块:其中的repr()函数与str()不同的是:
str()将值转化为适于人阅读的形式,而repr() 转化为供解释器读取的形式
pprint模块提供了打印的更美化更清晰的效果。
模板:
string模块下的Template可以实现参数定制化,如:
>>> from string import Template
>>> t = Template('${village}folk send $$10 to $cause.')
>>> t.substitute(village='Nottingham', cause='the ditch fund')
'Nottinghamfolk send $10 to the ditch fund.'
多线程:
高级模块threading可以实现多线程
[注:我在windows下使用threading模块报错了,linux下可以运行,大概该模块对windows不支持吧- -
列表工具:
array模块:类似列表,但是仅仅存储数据,更为紧凑。
collections模块下的deque:队列的实现,先进先出
在看着一部分的时候,还引申出了一个问题:
由range()和xrange()的区别,去了解 生成器generator,再到yield,受益匪浅.
这篇文章 点这里 关于生成器generator讲得特别好。
range()返回的是一个数组,当我们用 for i in range(x)时,产生一个迭代器iterator来访问数组中的所有元素。
xrange()返回的是一个生成器generator,生成器使用的是一遍循环一遍计算的机制。
当我们需要访问一个较大的list的时候,用range()用可能会产生大于内存的list。
generator的产生除了通过xrange,还可以通过(), 如(i*i for i in range(10)), 不同于list使用的是[]。
对generator内部元素的访问可以通过调用其next()方法,也可以用迭代器访问(generator也是可迭代对象)。
generator的实现:yield方法,其实现原理是函数每次遇到yield就中断返回,下次运行的时候从yield后继续,函数的变量一直保存。
【注:关于gennerator的更多知识参考生成器-廖雪峰的官方网站】