Python的math模块

ceil(x)

返回整数

>>> math.ceil(-1.273)
-1
>>> math.ceil(1.33)
2

copysign(x,y)

把y的符号给x,y可以是0

>>> math.copysign(12, -0.0)
-12.0
>>> math.copysign(-27, 29)
27.0

fabs(x)

返回绝对值

>>> math.fabs(-12)
12.0
>>> math.fabs(12)
12.0

factorial(x)

返回阶乘的数

>>> math.factorial(3)
6
>>> math.factorial(4)
24

floor(x)

取整数

>>> math.floor(1.23)
1
>>> math.floor(1.6)
1

fmod(x,y)

返回余数

>>> math.fmod(12,3)
0.0
>>> math.fmod(2,3)
2.0

frexp(x)

返回一个(m,e)的元组,其中x=m*2**e,0.5<=abs(m)<1

>>> math.frexp(5)
(0.625, 3)
>>> math.frexp(124)
(0.96875, 7)

fsum(iterable)

对迭代器里面的所有元素进行求和

>>> math.fsum([1.2, 3.4, 2.5])
7.1
>>> math.fsum((i for i in range(10)))
45.0

gcd(x,y)

求x和y的最大公约数

>>> math.gcd(15,10)
5
>>> math.gcd(100,25)
25

isclose(a, b, *, rel_tol=1e-09, abs_tol=0.0)

判断x和y的值是否相近,rel_tol是最大绝对值,abs_tol是最小绝对值

>>> math.isclose(12, 12.3, rel_tol = 2, abs_tol = 1)
True
>>> math.isclose(1, 2.3, rel_tol = 3, abs_tol = 1)
True

isfinite(x)

判断是否为无穷大或负无穷大,如果不是则返回True

>>> math.isfinite(3)
True

isinf(x)

判断是否为无穷大或负无穷大,如果是则返回True

>>> math.isinf(2)
False

isnan(x)

如果不是数字,返回True;如果是数字,返回False

>>> math.isnan(2)
False

ldexp(x,i)

返回x*(2**i)

>>> math.ldexp(2,1)
4.0
>>> math.ldexp(3,3)
24.0

modf(x)

返回一个(a,b)的元组,a是x的小数部分,b是x的整数部分

>>> math.modf(2.13)
(0.1299999999999999, 2.0)
>>> math.modf(3)
(0.0, 3.0)
>>> math.modf(1.2)
(0.19999999999999996, 1.0)

trunc(x)

返回整数部分

>>> math.trunc(1.23)
1
>>> math.trunc(0.123)
0

exp(x)

相当于math.e**x,不过更加精确

>>> math.exp(2)
7.38905609893065
>>> math.exp(1)
2.718281828459045

expml(x)

相当于exp(x)-1,不过更加精确

>>> math.exp(1e-5)-1
1.0000050000069649e-05
>>> math.expm1(1e-5)
1.0000050000166667e-05

log(x[, base])

取对数,base默认是常数e

>>> math.log(4, 2)
2.0
>>> math.log(math.e)
1.0

loglp(x)

取以math.e为底x+1的对数

>>> math.log1p(math.e-1)  ##其中是数字"1",不是字母"l"
1.0

log2(x)

相当于log(x,2)不过更加精确

>>> math.log2(3)
1.584962500721156
>>> math.log(3,2)
1.5849625007211563

log10(x)

相当于log(x,2)不过更加精确

>>> math.log10(10)
1.0
>>> math.log10(100)
2.0

pow(x,y)

返回x的y次幂

>>> math.pow(2, 4)
16.0

sqrt(x)

开平方根

>>> math.sqrt(4)
2.0
>>> math.sqrt(16)
4.0

acos(x)

反cos函数

>>> math.acos(0.5)
1.0471975511965979
>>> math.pi/3
1.0471975511965976

asin(x)

反sin函数

>>> math.asin(0.5)
0.5235987755982989
>>> math.pi/6
0.5235987755982988

atan(x)

反tan函数

>>> math.atan(1)
0.7853981633974483
>>> math.pi/4
0.7853981633974483

atan2(y,x)

矢量(x,y)与x的夹角,即tan(y/x)的大小

>>> math.atan2(1,1)
0.7853981633974483
>>> math.pi/4
0.7853981633974483

cos(x)

>>> math.cos(0)
1.0
>>> math.cos(math.pi/3)
0.5000000000000001

hypot(x,y)

(x,y)到原点的距离

>>> math.hypot(3,4)
5.0
>>> math.hypot(5,12)
13.0

sin(x)

>>> math.sin(math.pi/2)
1.0
>>> math.sin(math.pi/6)
0.49999999999999994

tan(x)

>>> math.tan(0)
0.0
>>> math.tan(math.pi/4)
0.9999999999999999

degrees(x)

把弧度转换为角度

>>> math.degrees(math.pi/2)
90.0
>>> math.degrees(math.pi/3)
59.99999999999999

radians(x)

把角度转换为弧度

>>> math.radians(90)
1.5707963267948966
>>> math.radians(30)
0.5235987755982988

三角函数双曲线

acosh(x)
asinh(x)
atanh(x)
cosh(x)
sinh(x)
tanh(x

erf(x)

\[ \varPhi \left( x \right) =\frac{1}{\sqrt{2\pi}}\int_{-\infty}^x{e^{\frac{-t^2}{2}}}dt \]

>>> math.erf(100)
1.0
>>> math.erf(100000)
1.0
>>> math.erf(0.123)
0.1380938816903886

erfc(x)

等同于1.0-erf(x)

>>> math.erf(0.5)
0.5204998778130465
>>> math.erfc(0.5)
0.4795001221869534
>>> math.erf(0.5)+math.erfc(0.5)
1.0

gamma(x)

\[ \varGamma \left( x \right) =\int_0^{+\infty}{t^{x-1}e^{-t}dt} \]

>>> math.gamma(100)
9.332621544394415e+155
>>> math.gamma(45)
2.658271574788449e+54

lgamma(x)

gamma函数的以常数e为底对数

>>> math.lgamma(100)
359.1342053695754
>>> math.lgamma(666)
3661.5273394029496

pi

e

tau

等同于2*pi

inf

无穷大

nan

等同于“not a number”

猜你喜欢

转载自www.cnblogs.com/MingleYuan/p/10628503.html