Python期货量化交易实战
上QQ阅读APP看书,第一时间看更新

技巧5 【操作】Python的基本运算与数学函数

基本运算包括四则运算和一些简单的数学函数,而常见的数学函数有绝对值、平方与开方、三角函数与指数、对数等。

1.加减乘除——+、−、*、/

Python中提供的基本运算有加、减、乘、除,分别为“+”“−”“*”“/”。下面通过简单的操作来进行介绍。

>>> 1 + 2
3
>>> 7 - 4
3
>>> 7 * 3
21
>>> 21 / 3
7.0

变量间的运算方式类似,如下所示:

>>> x=3
>>> y=4
>>> x+y
7
>>> x-y
-1

2.整除——//

整除是Python中比较特别的运算,又称为地板(floor)除法。

下面通过简单的操作来进行介绍:

>>> 3.0/2
1.5 
>>> 3.0//2 
1.0

整除会将计算出来的浮点型(float)结果的小数点后面的部分无条件舍去;若值为整型(int)结果,则无影响。

变量间的运算方式类似,如下所示:

>>> x=14.0
>>> y=3 
>>> x/y 
4.666666666666667 
>>> x//y 
4.0

3.幂——**

Python提供了幂运算,例如xy次幂可以用语法表示为x**y,示例如下:

>>> 4**3
64

使用变量进行幂运算,示例如下:

>>> x=3
>>> y=4 
>>> x**y 
81

4.取模——%

在Python中,可以进行取模运算,例如x除以y的余数的表达式为x%y,示例如下:

>>> 300%10
0
>>> 300%11
3
>>> 12%1
0

使用变量进行取模运算,如下所示:

>>> x=14
>>> y=3
>>> x%y
2

5.生成随机数——random

Python提供了random模块,但该模块不在标准函数库中,所以必须在使用相关函数前导入random模块。

下面介绍random模块和几个常用函数的用法。

导入random模块,并随机生成0~99中的任意值:

>>> import random
>>> random.randint(0,99)
95
>>> random.randint(0,99)
47

随机生成0~101中2的倍数:

>>> random.randrange(0, 101, 2)
28
>>> random.randrange(0, 101, 2)
78

随机生成0~101中3的倍数:

>>> random.randrange(0, 101, 3)
57
>>> random.randrange(0, 101, 3)
75

随机生成一个小于1并且大于0的值:

>>> random.random()
0.24863617521706927

6.转换数值类型——int、float

在Python中,可以通过函数强制转换数值类型,示例如下:

>>> int(3.1)           #小数位数转整数位会无条件舍去
3
>>> x=4.2 
>>> int(x) 
4
>>> 
>>> float(3) 
3.0 
>>> float(3.7)         #小数位数转整浮点位数会完整转出
3.7

与C语言相比,Python不仅限于整数与浮点数之间的转换,也可以通过字符串转换为数值,示例如下:

>>> x ="1.2"
>>> float(x) 
1.2

7.四舍五入函数——round

在Python中,可以通过该函数强制转换数值类型,示例如下:

>>> round(4.5654455)                #若没有填入位数参数,则初始值为0
5 
>>> round(4.5654455,3)              #输入位数参数3,则代表四舍五入至小数第3位
4.565 
>>> round(4.5654455,4) 
4.5654 

使用变量进行四舍五入,如下所示:

>>> x=4/3
>>> round(x) 
1

8.小于等于某数的最大整数——floor

在Python中,可以通过floor函数取得小于等于一个数的最大整数。由于floor函数在math模块中,因此必须先导入该模块才可以使用,示例如下:

>>> import math
>>> math.floor(4.56778)
4
>>> math.floor(4)
4
>>> math.floor(-3.44556)
-4

使用变量进行操作,如下所示:

>>> x=3.45
>>> y=-4.56
>>> math.floor(x)
3
>>> math.floor(y)
-5

9.大于等于某数的最小整数——ceil

在Python中,可以通过ceil函数来取得大于等于某个数的最小整数。由于ceil函数在math模块中,因此必须先导入该模块才可以使用,示例如下:

>>> import math
>>> math.ceil(4)
4
>>> math.ceil(4.1)
5
>>> math.ceil(-3)
-3
>>> math.ceil(-3.3)
-3

使用变量进行操作,如下所示:

>>> x=3.45
>>> y=-4.56
>>> math.ceil(y)
-4
>>> math.ceil(x)
4

10.开平方——sqrt

在Python中,可以通过sqrt函数来进行开平方运算。由于sqrt函数在math模块中,因此必须先导入该模块才可以使用,示例如下:

>>> import math
>>> math.sqrt(16) 
4.0 
>>> math.sqrt(81) 
9.0

使用变量进行操作,如下所示:

>>> x=100
>>> math.sqrt(x) 
10.0

11.绝对值函数——abs

在Python中,可以通过abs函数来求绝对值,示例如下:

>>> abs(100)
100
>>> abs(-100.0)
100.0

使用变量进行操作,如下所示:

>>> x=-1.354523
>>> abs(x)
1.354523

12.指数函数——exp

在Python中,可以通过exp函数来求ex。由于exp函数在math模块中,因此使用前必须先导入该模块,示例如下:

>>> import math
>>> math.exp(2)
7.38905609893065
>>> math.exp(10)
22026.465794806718

13.对数函数——log、log10

在Python中,可以通过log与log10函数来计算对数,其中log是以e为底的对数,log10是以10为底的对数。由于log函数在math模块中,因此必须先导入该模块才可以使用,示例如下:

>>> import math
>>> math.log(4)
1.3862943611198906
>>> math.log(6)
1.791759469228055

14.三角函数——sin、cos、tan

在Python中,也有三角函数。由于三角函数在math模块中,所以必须先导入该模块才可以使用,示例如下:

>>> import math
>>> math.sin(10) 
-0.5440211108893698 
>>> math.cos(10) 
-0.8390715290764524 
>>> math.tan(10) 
0.6483608274590866

15.最大值——max

在Python中,可以通过max函数来求一组数中的最大值,示例如下:

>>> max(-1,1,2,3,4,5,6)
6

使用变量进行操作,如下所示:

>>> x=(1,2,3,4,5,6,7)
>>> max(x) 
7

16.最小值——min

在Python中,可以通过min函数来取得一组数中的最小值,示例如下:

>>> min(-1,1,2,3,4,5,6)
-1

使用变量进行操作,如下所示:

>>> x=(1,2,3,4,5,6,7)
>>> min(x) 
1