
2.5 Python中的数字和字符串
数字和字符串是大部分编程语言中的基本数据类型,也是通过策略代码实现量化交易的基础。Python中有很多用于处理数字和字符串的函数,这些内置函数可以满足大部分策略开发需求。
2.5.1 内置数学函数
Python中的math库提供了很多复杂数学运算的相关数据和函数,如取绝对值,四舍五入等函数。这些函数不能直接访问,需要使用“import”导入math库,并且使用静态对象调用。示例代码如下:

输出结果如下:


在上述代码中,首先导入math库,接着定义了一个数字变量,直接调用math.e和math.pi可以获得自然常数和圆周率,math库中的函数还可以进行较复杂的数学运算,如计算绝对值、幂数、平方根等。
2.5.2 访问字符串中的字符
字符串是由多个字符组成的,字符与字符之间是有顺序的,字符的顺序号称为索引。字符串的索引值是从0开始的。例如,有一个字符串stringA="Hello ABC",它在内存空间中的存储顺序如表2.2所示。
表2.2 字符串“Hello ABC”在内存空间中的存储顺序

如果要选取字符串区间内容,则需要遵循左闭右开的原则,即从“起始”位开始,到“结束”位的前一位结束(不包含结束位本身)。最后一个元素的索引值是-1。示例代码如下:

输出结果如下:

在上述代码中,首先创建了一个字符串变量,然后根据字符串的索引值获取其中的字符。在这个例子中,“[6:9]”表示获取该字符串中索引值为6~8的字符,如果索引值为-1,则获取该字符串中的最后一个字符;如果索引值为-2,则获取该字符串中的倒数第2个字符;以此类推。
2.5.3 拼接字符串
在Python中,字符串的拼接有很多种方式,如通过加号(+)拼接,或者通过逗号(,)拼接。当需要拼接大量字符串时,这两种方法就非常低效了,此时可以使用Python内置的join()函数进行拼接。示例代码如下:


输出结果如下:

在上述代码中,定义了两个变量a、b,并且分别将其赋值为"hello"、"world!",然后通过3种方法拼接两个字符串(通过“+”符号拼接,通过“,”符号拼接,使用join()函数拼接)并打印。
2.5.4 其他常用函数
Python还提供了一些其他用于处理字符串的函数。
● len()函数:获取字符串中的字符个数,即字符串长度。
● lower()函数:将字符串中的所有大写字母转换为小写字母。
● upper()函数:将字符串中的所有小写字母转换为大写字母。
● replace()函数:替换字符串中的部分字符。
● split()函数:字符串分割函数。
示例代码如下:

输出结果如下:


在上述代码中,首先定义了一个字符串变量,然后使用len()函数获取该字符串变量的长度,使用lower()函数将字符串变量中的所有大写字母转换为小写字母,使用upper()函数将字符串变量中的所有小写字母转换为大写字母,使用replace()函数替换字符串变量中指定的字符串,使用split()函数根据指定的字符分割字符串并返回列表,最后获取列表中的元素。