
2.9 Python中的常用内置函数
2.9.1 len()函数
len()函数主要用于返回对象的长度或元素数量,主要适用于字符串、列表、字典等数据。如果是字符串,则返回字符数量;如果是列表,则返回元素数量;如果是字典,则返回键值对数量。示例代码如下:

输出结果如下:


在上述代码中,首先定义了3个变量,并且分别将其赋值为字符串、列表、字典,然后使用len()函数获取它们的长度。需要注意的是,在使用len()函数判断字典长度时,返回的是字典中的键值对数量。
2.9.2 range()函数
range()函数主要用于返回一个可以迭代的对象,这个对象是指定范围内的一系列数字。range()函数通常与for循环语句搭配使用,并且至少需要一个参数,示例代码如下:

输出结果如下:

在上述代码中,range(5)遵循左开右闭的原则,从0开始(包含0)到5结束(不包含5),产生了一个从0到4的数列。
可以给range()函数传两个参数,第1个参数表示起始数字,第2个参数表示结束数字,同样遵循左开右闭原则,示例代码如下:

输出结果如下:

range()函数还可以和len()函数搭配使用,通过使用列表索引,遍历一个列表(区别于for i in arr,注意变量i具体代表什么),示例代码如下:


输出结果如下:

在上述代码中,在执行第1个循环时,每次打印i变量,显示的是字母,说明每次从arr列表中取出元素并将其赋给i,然后打印i;在执行第2个循环时,每次打印i变量,显示的是数值,说明i是列表中元素的索引。
2.9.3 split()函数
split()函数主要用于对字符串进行分割,返回分割后的字符串列表。示例代码如下:

输出结果如下:

在上述代码中,首先定义了一个字符串变量,然后使用split()函数分割该字符串变量。split()函数中有一个参数,表示进行分割的字符。
2.9.4 type()函数
type()函数是既简单又实用的对象数据类型查询函数,它是一个内部函数,它的参数为要查询的对象,返回值为该对象的数据类型。示例代码如下:


输出结果如下:

在上述代码中,首先定义了3个变量,分别将其赋值为字符串、列表、字典,然后使用type()函数判断它们的数据类型,并且将其打印到日志信息中。
2.9.5 isinstance()函数
isinstance()函数主要用于判断一个对象的数据类型是否为某个已知的数据类型,类似于type()函数,区别在于:type()函数不会认为子类是一种父类类型,不考虑继承关系。isinstance()函数会认为子类是一种父类类型,考虑继承关系。示例代码如下:

输出结果如下:

在上述代码中,第1个参数是要判断的对象,第2个参数为要对比的数据类型。因为变量a为浮点型数据,所以isinstance(a,float)返回True;因为变量b不是浮点型数据,所以isinstance(b,float)返回False。
2.9.6 取整函数
在量化交易中,对数据进行取整处理是不可避免的,取整方式包括向下取整、四舍五入取整、向上取整等。Python提供了很多用于将浮点型数据取整的函数。
● int()函数主要用于向下取整。
● round()函数主要用于四舍五入取整。
● math库中的ceil()函数主要用于向上取整。

输出结果如下:

在上述代码中,首先使用import关键字导入math库,然后定义了一个变量a并将其赋值为3.14156,接着使用Python自带的int()函数将变量a向下取整并打印,再使用round()函数将变量a四舍五入取整并打印,最后使用math库中的ceil()函数将变量a向上取整并打印。