math模块中定义了一些数学函数。由于这个模块属于编译系统自带,因此它可以被无条件调用。该模块还提供了与用标准C定义的数学函数的接口。
要注意的是,这些函数无法应用于复数,但是在cmath模块中定义的同名函数可以支持复数运算,当然也会为此付出一定的性能代价。为什么会设置同名的函数却会有是否支持复数的区别,这是因为大多数用户完全不需要复数方面的操作,因此对于他们来讲,理解函数就会有不必要的麻烦。接受一个例外而不是一个复数结果使得参数被设置为复数这个意外更加容易被察觉,那么编程者就可以再次确认以下为什么要定义并在这里产生它。
以下的函数是该模块所提供的。除非明确指出,否则所有返回值都是浮点数。
1. 数论函数和表示函数
math. ceil(x)
返回x的最大值,这个最大值是大于或等于x的最小整数。如果x不是浮点数的话,将使用x.__ceil__()替代返回一个整数值。
math. copysign(x, y)
返回一个浮点数,该浮点数的绝对值与x相同,正负性与y相同。如果运行平台支持带符号的零,copysign(1.0, -0.0)将会返回-1.0.
math. factorial(x)
返回x的绝对值。
math. factorial(x)
返回x的阶乘值。如果x不是整数或者为负数,抛出ValueError。
math. floor(x)
返回x的最小值,该最小值为小于等于x的最大整数。
math. fmod(x, y)
按照平台C库的定义返回fmod(x,y)。请注意,Python表达式x%y可能不会返回相同的结果。标准C的意图是对于某个整数n,fmod(x,y)完全(在数学上达到无限精度)等于x-n * y,使得结果的符号与x相同,幅度小于abs(Y)。Python的x%y返回一个带有y的符号的结果,并且对于float参数可能不是完全可计算的。例如,fmod(-1e-100,1e100)是-1e-100,但是Python的-1e-100%1e100的结果是1e100-1e-100,它不能完全表示为浮点数,并且令人惊讶1e100。出于这个原因,函数fmod()在使用浮点数时通常是首选,而在使用整数时,Python的x%y是首选。
math. frexp(x)
以(m, e)数对的形式返回x的尾数和指数。m是一个浮点数,而e是一个整数,其类似于x == m*2**e。如果x是0,返回(0.0, 0);否则,0.5<=abs(m)<1。该函数使得分解浮点数的内部表达形式变得简单高效。
math.fsum(iterable)
将可迭代对象iterable内的元素值精确地相加在一起,返回一个浮点数形式的和。该函数可以有效避免浮点数求和时的精度损失。
>>>sum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1])
0.9999999999999999
>>>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=0.0)
如果a与b彼此相近的程度满足rel_tol(相对精度,按比例算,以a与b绝对值较大的为标准1)与abs_tol(绝对精度,按数值差算)规定的精度(那个容许的范围大,以哪个为评判标准),那么返回True;否则返回False。
math. isfinite(x)
如果x不是无穷数或NaN,返回True。
math. isinf(x)
如果x是正无穷或负无穷,返回True。
math. isnan(x)
如果x是NaN,返回True。
math. ldexp(x, i)
返回x*(2**i)的值。
math. modf(x)
返回x的小数部分和整数部分。两个值都为浮点数格式,且带有x的符号。
math. trunc(x)
将实数x截断为一个Integral格式的数(通常为整数格式)。
2.幂函数和对数函数
math. exp(x)
返回e**x
math. expml(x)
返回e**x – 1。该函数对小浮点数x提供了良好的精度参照。
math. log(x[, base])
base若为给出,求以e为底的x的对数;base给出,则以base为底。
math. logl[(x)
返回以e为底1+x的对数,该函数对于近似于0的x值有较高精度。
math. log2(x)
返回以2为底的x的对数。
math. log10(x)
返回以10为底x的对数。
math. pow(x, y)
返回x**y的值。
math. sqrt(x)
返回x的平方根。
3.三角函数
math. acos(x)
返回x的反余弦值,以弧度形式,下面也相同。
math. asin(x)
返回x的反正弦值。
math. atan(x)
返回x的反正切值。
math. atan2(y, x)
返回atan(y/x),结果在[-pi,pi]之内。
math. cos(x)
返回x弧度的余弦值。
math. hypot(x, y)
返回点(x, y)到原点的距离。
math. sin(x)
返回x弧度的正弦值。
math. tan(x)
返回x弧度的正切值。
4.角度转换
math. degrees(x)
将弧度值x转化为角度值。
math. radians(x)
将角度值x转化为弧度值。
5. 双曲函数
双曲函数是基于圆的三角函数在双曲线上的类比。
math. acosh(x)
返回x的反双曲余弦值。
math. asinh(x)
返回x的反双曲正弦值。
math. atanh(x)
返回x的反双曲正切值。
math. cosh(x)
返回x的双曲余弦值。
math. sinh(x)
返回x的双曲正弦值。
math. tanh(x)
返回x的双曲正切值。
6. 特殊函数
math. erf(x)
返回x处的error函数。其可用于计算传统统计函数。
math. erfc(x)
返回x处的补充错误函数.
math. gamma(x)
返回x处的Gamma函数。
math. lgamma(x)
返回x处Gamma函数绝对值的自然对数。
7. 常量
math. pi
pi即为圆周率常量。
math. e
e即为自然底数,e=2.718281…
math. tau
数字常量T = 6.283185…
math. inf
浮点格式的正无穷。
math. nan
浮点格式的非数字值。