python学习笔记(三)

模块

模块的功能就是重复运用代码块,如里面的函数,属性和类。

导入模块

模块的导入是一次导入的,首次导入后会生成一个.pyc的文件,如果再次导入时,python会导入.pyc文件而不是.py文件,除非.py文件已改变,在这种情况下,会生成新的.pyc文件。

自定义模块

自定义模块是很简单的,把你自己写的模块保存为.py结尾的python文件,把它放在python解释器能够识别的路径里,我们可以通过sys.path查看可存放路径,

习惯上我们把模块放在site-packages目录下;另一种方法是告诉编译器去哪里找我们定义的模块,我们可以在PYTHONPATH环境变量中包含模块所在的目录信息:在环境变量的页面中编辑或新建一个用户变量,变量名为PYTHONPATH,将路径作为变量值,多个值以分号隔开。

 

为了组织好模块,你可以将它们分组为包,包就是另一类模块。为了让python把包含模块的目录/文件作为包看待,它必须包含一个命名为__init__.py的模块。

为了将模块放置在包内,直接把模块放在包目录内即可。

堆(heap)

数据结构堆是优先队列的一种,使用优先队列能够以任意顺序增加对象,并且能在任何时间找到最小的元素。在python中并没有独立的堆类型,只有一个包含一些堆操作函数的模块,这个模块叫做heapq,包含6个函数。你必须将列表作为堆对象本身。

函数

描述
heappush(heap,x) 将x入堆
heappop(heap) 将堆中最小的元素弹出
heapify(heap) 将heap属性强制应用到任意一个列表
heapreplace(heap,x) 将堆中最小的元素弹出,同时将x入堆
nlargest(n,iter) 返回iter中第n大的元素
nsmallest(n,iter) 返回iter中第n小的元素

In [1]: from heapq import *

In [2]: from random import shuffle

In [3]: data = range(10)

In [4]: heap = []

In [5]: for n in data:
   ...:     heappush(heap,n)
   ...:

In [6]: heap
Out[6]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

In [7]: heappush(heap,0.5)

In [8]: heap
Out[8]: [0, 0.5, 2, 3, 1, 5, 6, 7, 8, 9, 4]

In [9]: heappop(heap)
Out[9]: 0

 

双端队列(double-ended queue,或称deque)

在需要按照元素增加的顺序来移除元素时非常有用

In [10]: from collections import deque

In [11]: q = deque(range(5))

In [12]: q.append(5)

In [13]: q.appendleft(6)

In [14]: q
Out[14]: deque([6, 0, 1, 2, 3, 4, 5])

In [15]: q.pop()
Out[15]: 5

In [16]: q.popleft()
Out[16]: 6

In [17]: q
Out[17]: deque([0, 1, 2, 3, 4])

In [18]: q.rotate(2)#左移或右移元素

In [19]: q
Out[19]: deque([3, 4, 0, 1, 2])

 

 

time模块

time模块中重要的函数                              

函数 描述
asctime([tuple]) 将时间元组转换为字符串
localtime([secs]) 将秒数转换为日期元组,以本地时间为准
mktime(tuple) 将时间元组转换为本地时间
sleep(secs) 休眠secs秒
strptime(string[.format]) 将字符串解析为时间元组
time() 当前时间

 

此外,python还提供了两个和时间密切相关的模块:datetime(支持日期和时间的算法)和timeit(帮助开发人员对代码的执行时间进行计算)

 

random模块

random模块包括返回随机数的函数

random模块中一些重要的函数

函数 描述
random() 返回0<n<=1之间的随机实数n
getrandbitsThumbs down 以长整型形式返回n个随机位
uniform(a,b) 返回随机实数n,其中a<=n<b
randrange([start],stop,[step]) 返回range(start,stop,step)中的随机数
choice(seq) 从序列seq中返回随意元素
shuffle(seq) 原地指定序列seq
sample(seq,n) 从序列seq中选择n个随机且独立的元素
 
 

posted @ 2016-11-18 22:07  GoodPanpan  阅读(202)  评论(0编辑  收藏  举报