Python之所以广受推崇的原因之一,就是其具有众多功能强大的库(Library)。
模块、包和库
在Python中,除了函数库,模块(Module)和包(Package)也经常被人提及,用几个简单的例子解释一下Python中模块、包和库的概念。
模块
模块是一种以.py为后缀的文件,在.py文件中定义了一些常量和函数。
比如:我们定义priceSequence是某一个股票交易日内开市后的日成交价格序列。
priceAnalysis.py代码如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26#求开盘价
#股票日内交易一天内第一笔成交的成交价格定义为“开盘价”
def OpenPrice(priceSequence):
Open = priceSequence[0]
return Open
#求收盘价
#股票日内交易一天内最后一笔成交的成交价格定义为“收盘价”
def ClosePrice(priceSequence):
Close = priceSequence[-1]
return Close
#求最高价
#股票日内交易价格序列的最大值定义为“最高价”
def HighPrice(priceSequence):
High = priceSequence[0]
for price in priceSequence:
if price > High:
High = price
return High
#求最低价
#股票日内交易价格序列的最小值定义为“最低价”
def LowPrice(priceSequence):
Low = priceSequence[0]
for price in priceSequence:
if price < Low:
Low = price
return Low
这时候我们的就创建了一个名为priceAnalysis的模块,模块的名称就是.py脚本文件的名称。
接下来我们使用import导入,就可以使用这个模块了。1
2
3
4
5
6
7
8
9#导入模块的语句形式
import 特定模块名称
import 特定模块名称 as 自定义名称
#导入priceAnalysis模块
import priceAnalysis as PrA
#如果要导入模块内的特定函数,我们可以用from...import...语句,比如:
from priceAnalysis import ClocePrice
我们把模块看作一个对象,通过“模块名称.常量名称”来获得模块内的特定变量,通过“模块名称.函数名称”来获取该模块内的特定函数。1
2
3
4
5
6
7
8
9
10import priceAnalysis as PrA
price=[19,18,20,22,17,21]
print(PrA.OpenPrice(price))
#求开盘价 输出19
print(PrA.ClosePrice(price))
#求收盘价 输出21
print(PrA.HighPrice(price))
#求最高价 输出22
print(PrA.LowPrice(price))
#求最低价 输出17
包
包体现了模块的结构化管理思想,包由模块文件构成,将众多具有相关联功能的模块文件结构化组合形成包。那么我们从编程开发的角度来看,比如两个程序员A与B将功能不同的模块文件取了相同的名字(比如为priceAnalysis),如果第三人导入了这个模块,就无法分辨出是哪个priceAnalysis模块。所以,A与B可以分别构造出一个包。将模块放到包的下面,第三人再通过“包.模块名”进行访问,那么就可以进行区分了。1
2
3
4
5
6
7
8
9#导入模块的语句形式
import 特定模块名称
import 特定模块名称 as 自定义名称
#导入priceAnalysis模块
import priceAnalysis as PrA
#如果要导入模块内的特定函数,我们可以用from...import...语句,比如:
from priceAnalysis import ClocePrice
我们把模块看作一个对象,通过“模块名称.常量名称”来获得模块内的特定变量,通过“模块名称.函数名称”来获取该模块内的特定函数。1
2
3
4import stock.priceAnalysis
#导入stock文件夹下面的priceAnalysis模块
import future.priceAnalysis
#导入future文件夹下面的priceAnalysis模块
库
Python中的库是借用其他编程语言的概念,没有特别具体的定义,Python库着重强调其功能性。在Python中,具有某些功能的模块和包都可以被称作库。模块由诸多函数组成,包由诸多模块结构化构成,库中也可以包含包、模块和函数。
举例来说,NumPy库是一个具有强大科学计算功能的函数库,与此同时,我们也可以把NumPy称作包,由许多丰富功能的模块构成。
Python标准库的介绍
Python标准库是Python自带的函数库,成功安装了Python就可以使用标准库。
标准库中包括了内置函数(Built-in Functions)、内置常量(Built-in Constants)、内置数据类型(Built-in Types)、内置异常(Built-in Exceptions)以及众多功能函数组成的模块。这些模块中的函数用C语言编写而成。
内置函数(Built-in Functions)
Python内置函数,就是Python标准库中自带的函数,Python标准库提供了一些常用功能的函数。通过代码1
print(dir(__builtins__))
即可将Python内置函数名称进行输出。
内置常量(Built-in Constants)
Python内置常量是存在于Python内置命名空间中的常量,常量值不能被程序更改。在python 3.5.1版本中,布尔类型取值的True和False为内置常量;内置常量NoneType类型的None一般用于带有参数的函数的参数默认取值中,表示取值的缺失;Python的内置常量还包括NotImplemented、Ellipsis、debug、和site模块中的部分常量值等。1
2
3print(True) #输出True
print(False) #输出False
print(None) #输出None
内置数据类型(Built-in Types)
数值型(Numerics)、序列(Sequences)、容器类型(Mappings)、类(Classes)、类的实例(Instances)和异常值类型(Exception)等属于Python解释器(Interpreter)中内置的数据类型(Built-in types)。
内置异常(Built-in Exceptions)
内置异常是指在程序运行过程中出现的错误,包括语法错误(SyntaxError)、缩进错误(IndentationError)、系统错误(SystemError)、命名错误(NameError)等,在Python中用try…except捕捉异常,用raise抛出异常,而所有异常都从类Exception中继承。
内置模块
Python标准库中的模块众多,在这里我们仅挑出几个常用的模块来阐述Python模块的使用方式和
本文部分整理转载自《量化投资:以Python为工具》蔡立耑 仅供学习研究之用,侵删。