目录
Python内置数值操作
1、数字运算符
2、数值运算函数
3、类型转换
Math库
1、常用数值表示函数
2、math库幂对函数
3、math库的三角函数
Python提供了 9 个基本的数值运算操作符,这些操作符有解释器直接提供,不需要引用第三方库,例如 最只因本的 " + " " - " " * " " / " " % " " ** "等,其功能如下表:
操作符 | 功能 |
---|---|
x + y | x 与 y 之和 |
x - y | x 与 y 之差 |
x * y | x 与 y 之积 |
x / y | x 与 y之商 |
x // y | x 除 y 的整数商 |
x % y | x 与 y之商的余数,(也称为取模运算) |
- x | x * ( - 1)的简化写法,x的负值 |
+ x | x本身 |
x ** y | x的y次幂,即 |
python中数值的运算基本符合我们生活中的数学习惯,对于非复数来说,只是将其虚部看为了0进行计算,并不影响其计算。
此外,这里面的所有运算操作符,都有其对应的增强赋值操作符的形式:
+= 、-=、*=、/=、*=、//=、%=、**=
例如:x += 1 就相当于 x = x + 1
当然python也提供了许多内置的数值运算函数,如下:
函数 | 功能 |
---|---|
abs(x) | 计算并返回x的绝对值 |
divmod(x,y) | 以二元组的形式返回(x//y ,x%y) |
pow(x,y) | 返回x的y次幂:,同x**y |
pow(x,y,z) | 返回(x**y)% z |
round(x [ ,ndigits ] ) | 对x进行四舍五入操作,保留ndigits位小数。round(X)则返回整数值 |
min(X1,X2,......,Xn) | 返回X1 ~ Xn中最小值 |
max(X1,X2,......,Xn) | 返回X1 ~ Xn中最大值 |
python的这些操作都会产生不同数据类型的数据。例如两个整数做 “/”运算就会产生 浮点数的结果。针对这个情况python提供了内置的数值类型转换函数,可以让两个数据进行显示的数据类型转换:
函数 | 功能 |
int(x) | 将x的类型数据转化为整数,x可以是浮点数,字符串 |
float(x) | 将x转化为浮点数,x可以是字符串,可以是整数 |
complex(x [ ,im]) | 生成一个复数x(其实部为x,im为可选虚部,默认为0),其中x可以为整数、浮点数、字符串;im可以是整数、浮点数,但是不能为字符串 |
上面提供了许多的数值操作方法,但是这并不能满足我们计算机中或者是数学上的计算要求,数学计算中还包含了sinx,cosx等复杂的函数,要进行这些数据类型数据和函数的计算,Python提供了Math供解决。
Math库是Python的内置库,不需要下载安装,导入即可使用。由于复数类型在一般的计算中并不常见,所以Math的函数并不支持复数类型的数据,仅支持浮点数和整数。
常用函数 | 数学表达 | 功能 |
---|---|---|
math.pi | π | 圆周率,值为3.1415926..... |
math.e | e | 自然对数,值为2.718281..... |
math.inf | ∞ | 正无穷大 |
-math.inf | -∞ | 负无穷大 |
math.nan | 非浮点数标记,返回浮点nan | |
其他函数 | 数学表达 | 功能 |
math.fabs(x) | 返回x的绝对值,同abs(x) | |
math.fmod(x,y) | x%y | 返回x与y的模,即x%y |
math.fsum([ X1,X2,....Xn ]) | X1+X2....+Xn | 浮点数精确求和(传入参数为可迭代类型,如列表等等) |
math.ceil(x) | 向上取整,返回不小于x的最小整数 | |
math.floor(x) | 向下取整,返回不大于x的最大整数 | |
math.factorial(x) | x ! | 返回x的阶乘,如果x是小数或者负数,返回ValueError(一种异常) |
math.gcd(x,y) | 返回a,b的最大公约数 | |
math.frexp(x) | x = m * | 以二元组的形式,返回组成x的尾数和指数(m,e) |
math.ldexp(x,i) | x * | 返回x * 的值 |
math.modf(x) | 例如x=3.14 返回(0.1400...,3.0) | 以元组的形式(浮点数部分,整数部分)的形式返回x的小数和整数部分 |
math.trunc(x) | 返回x的整数部分 | |
math.isinf(x) | 当x为正负无穷大,返回True,否则返回False | |
math.isfinite(x) | 当x不是无穷大或NaN,返回True否则返回False |
注: 当我们计算math.modf(3.14)的时候可能会发现以下结果:
可以发现小数部分并不是0.14,而是后面带了一个很小的尾数,
0. 0000000000000012
直接使用 == 比较浮点数的话会对最终的结果产生影响,因此建议采用math库函数。
函数 | 数学表达 | 描述 |
---|---|---|
math.pow(x,y) | ,返回x的y次幂,即x**y | |
math.exp(x) | 返回e的x次幂,e是自然对数 | |
math.sqrt(x) | 返回x的平方根 | |
math.log(x,base) | 返回以base为底,x为对数,base为可选 参数,若不输入,则默认为自然对数e,即lnx |
|
math.log2(x) | 返回以二为底,x的对数 | |
math.log10(x) | 返回以10为底,x的对数 | |
math.expm1(x) | - 1 | 返回e的x次幂 减一 |
math.log1p(x) | 返回x + 1 的自然对数值 |