math是Python自带的数学函数模块,对大多数数字类型适用,但不适用于复数,如果是复数需要使用cmath模块的同名函数,无特殊情况下,math模块中的函数返回值均为浮点数。
数论与表示函数
函数名 | 释义/代码实例 |
---|---|
math.ceil(x) | 返回大于或等于x的最小整数,如果x不是浮点数,则会委托x.ceil()返回一个Integer类的值 |
math.copysign(x,y) | 返回一个基于x的绝对值和y的符号的浮点数>>> math.copysign(2.4, -1.2) -2.4 |
math.fabs(x) | 返回x的绝对值 |
math.factorial(x) | 返回x的阶乘,当x不是整数或者是负数时,引发ValueError异常 |
math.floor(x) | 返回x的向下取整,小于或等于x的最大整数,如果x不是浮点数,则委托x.floor()返回一个Integral值 |
math.fmod(x,y) | x除以y的余数,但结果并不一定与x%y相同,x%y取余是向下取余,而fomd函数是向靠近0的方向取余,并且fmod函数精度更准确,所以fmod()函数更适合浮点数 |
math.frexp(x) | 返回x的尾数和指数对(m,e),m是一个浮点数,e是一个整数,m和e要满足 x== m * 2 **e 。 如果x为零,则返回(0.0,0) |
math.fsum(iterable) | 返回迭代中的精确浮点值,通过跟踪多个中间部分和 以此避免精度损失。该方法的准确性取决于IEEE-754算术保证和 舍入模式为半偶的典型情况,在一些非Windows版本中,底层C库使用扩展精度添加,并且有时可能会使中间和加倍,导致在最低有效位中关闭。 >>> sum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1]) 0.9999999999999999 >>> math. fsum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1]) 1.0 |
math.gcd(a,b) | 返回a和b的最大公约数,如果a或b之一非负,则函数函数的值是同时能正常a和b的最大正整数,gcd(0,0)则返回0 |
math.isclose(a,b,*,rel_tol=1e-09,abs_tol=0.0) | 若a和b的值比较接近则返回True,否则返回False。判定标准是根据给定的绝对和相对容差。rel_tol是相对容差,必须大于0,是a和b之间允许的最大差值。abs_tol是最小绝对容差,至少为0 |
math.isfinite(x) | 如果x是有限位数,则返回True,否则返回False |
math.isinf(x) | 如果x是正无穷或负无穷,则返回True,否则返回False |
math.isnan(x) | 如果x是NaN,则返回True,否则返回False |
math.ldexp(x,i) | 返回x*(2**i) , 是函数frexp()的反函数 |
math.modf(x) | 返回x的小数和整数部分,两个结果都带有x的符号并且是浮点数 |
math.trunc(x) | 返回x实部截断Integeral |
幂函数与对数函数
函数名 | 释义/代码示例 |
---|---|
math.exp(x) | 返回 e**x |
math.expm1(x) | 返回e**x - 1 |
math.log(x,base) | 使用一个参数,则返回x的自然对数(底为e)。使用两个参数,返回给定的base的对数x,计算为log(x)/log(base)。 |
math.log1p(x) | 返回1+x(base e)的自然对数 |
math.log2(x) | 返回x以2为底的对数,比log(x,2)准确度高 |
math.log10(x) | 返回x底为10的对数,比log(x,10)准确度高 |
math.pow(x,y) | 返回x的y次幂 |
math.sqrt(x) | 返回x的平方根 |
>>> x = 5
>>> math.exp(x)
148.4131591025766
>>> math.expm1(x)
147.4131591025766
>>> math.log(x)
1.6094379124341003
>>> math.log(x, 2)
2.321928094887362
>>> math.log1p(x)
1.791759469228055
>>> math.log2(x)
2.321928094887362
>>> math.log10(x)
0.6989700043360189
>>> math.pow(x, 2)
25.0
>>> math.sqrt(x)
2.23606797749979
三角函数
函数名 | 释义/代码示例 |
---|---|
math.acos(x) | 以弧度为单位返回x的反余弦值 |
math.asin(x) | 以弧度为单位返回x的反正弦值 |
math.atan(x) | 以弧度为单位返回x的反正切值 |
math.atan2(y,x) | 以弧度为单位返回athan(y/x),结果在-pi和pi之间,可以计算角度的正确象限 |
math.cos(x) | 返回x弧度的余弦值 |
math.hypot(x,y) | 返回欧几里德范数,sqrt(xx + y\y),是原点到点(x,y)的向量距离 |
math.sin(x) | 返回x弧度的正弦值 |
math.tan(x) | 返回x弧度的正切值 |
注意: x的取值若超出范围,否则会报ValueError: math domain error
>>> math.acos(2.3)
Traceback (most recent call last):
File "<pyshell#26>", line 1, in <module>
math.acos(2.3)
ValueError: math domain error
>>> math.acos(0.5)
1.0471975511965976
>>> math.asin(0.5)
0.5235987755982988
>>> math.atan(0.5)
0.46364760900080615
>>> math.atan2(0.5,0.5)
0.7853981633974483
>>> math.cos(0.5)
0.8775825618903728
>>> math.hypot(0.5,0.5)
0.7071067811865476
>>> math.sin(0.5)
0.479425538604203
>>> math.tan(0.5)
0.5463024898437905
>>> math.tan(1)
1.557407724654902
>>> math.tan(1.4)
5.797883715482887
>>> math.tan(2)
-2.185039863261519
>>> math.tan(2.5)
-0.7470222972386602
角度转换
函数名 | 释义 |
---|---|
math.degrees(x) | 将角度x从弧度转换为度数 |
math.radians(x) | 将角度x从度数转换为弧度 |
双曲函数
双曲函数是基于双曲线而非圆来对三角函数进行模拟
函数名 | 释义 |
---|---|
math.acosh(x) | 返回x的反双曲余弦值 |
math.asinh(x) | 返回x的反双曲正弦值 |
math.atanh(x) | 返回x的反双曲正切值 |
math.cosh(x) | 返回x的双曲余弦值 |
math.sinh(x) | 返回x的双曲正弦值 |
math.tanh(x) | 返回x的双曲正切值 |
特殊函数
函数名 | 释义 |
---|---|
math.erf(x) | 用来计算传统的统计函数,如累积标准正态分布 |
math.erfc(x) | 返回x的互补误差函数,互补错误函数 定义为 1.0 - erf(x) |
math.gamma(x) | 返回x的伽马函数值 |
math.lgamma(x) | 返回Gamma函数x绝对值的自然对数 |
math模块中的常数
常数 | 释义 |
---|---|
math.pi | 数学常数π=3.1415926… |
math.e | 数学常数e= 2.718281…. |
math.tau | 数学常数τ = 6.283185… |
math.inf | 正无穷大浮点数,负无穷大浮点数使用-math.inf |
math.nan | 浮点”非数字”值 |
math模块是数学函数的包装模块,若使用不符合数学规范,则会触发ValueError
参考文献:
1.https://docs.python.org/English/3.6/library/math.html#math.fmod