前提
math数据包不适用于复数
如果你需要计算复数,请使用 cmath 模块中的同名函数
除非有说明,math的函数都返回浮点数
link:math --- 数学函数 — Python 3.7.3 文档
1.math.ceil(x)
返回 x 的上限,即大于或者等于 x 的最小整数。如果 x 不是一个浮点数,则委托 x.__ceil__(), 返回一个 Integral 类的值。
2. math.copysign(x, y)
返回一个基于 x 的绝对值和 y 的符号的浮点数。在支持带符号零的平台上,copysign(1.0, -0.0) 返回 -1.0.
3.math.fabs(x)
返回 x 的绝对值。
4.math.factorial(x)
返回 x 的阶乘。当*x*不是整数或者是负数时,引发 ValueError 异常。
4.1 阶乘
In mathematics, the factorial of a positive integer n, denoted by n!, is the product of all positive integers less than or equal to n.
5!=5*4*3*2*1
exclamation mark (!)
5.math.floor(x)
返回 x 的向下取整,小于或等于 x 的最大整数。如果 x 不是浮点数,则委托 x.__floor__() ,它应返回 Integral 值。
6.math.frexp(x)
返回 x 的尾数和指数作为对``(m, e)``。 m 是一个浮点数, e 是一个整数,正好是 x == m * 2**e 。 如果 x 为零,则返回 (0.0, 0) ,否则返回 0.5 <= abs(m) < 1 。这用于以可移植方式“分离”浮点数的内部表示。
7.math.gcd(a, b)
返回整数 a 和 b 的最大公约数。如果 a 或 b 之一非零,则 gcd(a, b) 的值是能同时整除 a 和 b 的最大正整数。gcd(0, 0) 返回 0。
8.math.isclose(a, b, *, rel_tol=1e-09, abs_tol=0.0)
若 a 和 b 的值比较接近则返回 True,否则返回 False。
根据给定的绝对和相对容差确定两个值是否被认为是接近的。
rel_tol 是相对容差 —— 它是 a 和 b 之间允许的最大差值,相对于 a 或 b 的较大绝对值。例如,要设置5%的容差,请传递 rel_tol=0.05 。默认容差为 1e-09,确保两个值在大约9位十进制数字内相同。 rel_tol 必须大于零。
abs_tol 是最小绝对容差 —— 对于接近零的比较很有用。 abs_tol 必须至少为零。
如果没有错误发生,结果将是: abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol) 。
IEEE 754特殊值 NaN , inf 和 -inf 将根据IEEE规则处理。具体来说, NaN 不被认为接近任何其他值,包括 NaN 。 inf 和 -inf 只被认为接近自己。
9.math.isfinite(x)
如果 x 既不是无穷大也不是NaN,则返回 True ,否则返回 False 。 (注意 0.0 被认为 是 有限的。)
10.math.isinf(x)
如果 x 是正或负无穷大,则返回 True ,否则返回 False 。
11.math.isnan(x)
如果 x 是 NaN(不是数字),则返回 True ,否则返回 False 。
12. math.modf(x)
返回 x 的小数和整数部分。两个结果都带有 x 的符号并且是浮点数。
13.math.remainder(x, y)
返回 IEEE 754 风格的 x 相对于 y 的余数。对于有限 x 和有限非零 y ,这是差异 x - n*y ,其中 n 是与商 x / y 的精确值最接近的整数。如果 x / y 恰好位于两个连续整数之间,则最近的 * even* 整数用于 n 。 余数 r = remainder(x, y) 因此总是满足 abs(r) <= 0.5 * abs(y) 。
特殊情况遵循IEEE 754:特别是 remainder(x, math.inf) 对于任何有限 x 都是 x ,而 remainder(x,0) 和 remainder(math.inf, x) 引发 ValueError 适用于任何非NaN的 x 。如果余数运算的结果为零,则该零将具有与 x 相同的符号。
在使用IEEE 754二进制浮点的平台上,此操作的结果始终可以完全表示:不会引入舍入错误。
14.math.trunc(x)
返回 Real 值 x 截断为 Integral (通常是整数)。 委托给 x.__trunc__()。
注意 frexp() 和 modf() 具有与它们的C等价函数不同的调用/返回模式:它们采用单个参数并返回一对值,而不是通过 '输出形参' 返回它们的第二个返回参数(Python中没有这样的东西)。
对于 ceil() , floor() 和 modf() 函数,请注意 所有 足够大的浮点数都是精确整数。Python浮点数通常不超过53位的精度(与平台C double类型相同),在这种情况下,任何浮点 x 与 abs(x) >= 2**52 必然没有小数位。
ps:ceil() 都是入大值
floor() 取小的值
trunc() 截取整数值
????
15.math.exp(x)
返回 e 次 x 幂,其中 e = 2.718281... 是自然对数的基数。这通常比 math.e ** x 或 pow(math.e, x)更精确。
16. math.expm1(x)
返回 e 的 x 次幂,减1。这里 e 是自然对数的基数。对于小浮点数 x , exp(x) - 1 中的减法可能导致 significant loss of precision; expm1() 函数提供了一种将此数量计算为全精度的方法
17.math.log(x[, base])
使用一个参数,返回 x 的自然对数(底为 e )。
使用两个参数,返回给定的 base 的对数 x ,计算为 log(x)/log(base) 。
18.math.log1p(x)
返回 1+x (base e) 的自然对数。以对于接近零的 x 精确的方式计算结果。
19.math.log2(x)
返回 x 以2为底的对数。这通常比 log(x, 2) 更准确。
20.math.log10(x)
返回 x 底为10的对数。这通常比 log(x, 10) 更准确。
21.math.pow(x, y)
将返回 x 的 y 次幂。
与内置的 ** 运算符不同, math.pow() 将其参数转换为 float 类型。使用 ** 或内置的 pow() 函数来计算精确的整数幂。
22. math.sqrt(x)
返回 x 的平方根。
23. math.acos(x)
以弧度为单位返回 x 的反余弦值。
24. math.asin(x)
以弧度为单位返回 x 的反正弦值。
25. math.atan(x)
以弧度为单位返回 x 的反正切值。
26. math.atan2(y, x)
以弧度为单位返回 atan(y / x) 。结果是在 -pi 和 pi 之间。从原点到点 (x, y) 的平面矢量使该角度与正X轴成正比。 atan2() 的点的两个输入的符号都是已知的,因此它可以计算角度的正确象限。 例如, atan(1) 和 atan2(1, 1) 都是 pi/4 ,但 atan2(-1, -1) 是 -3*pi/4 。
27. math.cos(x)
返回 x 弧度的余弦值。
28. math.hypot(x, y)
返回欧几里德范数, sqrt(x*x + y*y) 。 这是从原点到点 (x, y) 的向量长度。
29. math.sin(x)
返回 x 弧度的正弦值。
30. math.tan(x)
返回 x 弧度的正切值。
31.math.degrees(x)
将角度 x 从弧度转换为度数。
32.math.radians(x)
将角度 x 从度数转换为弧度。
33.math.gamma(x)
返回 x 处的 伽马函数 值。
34.math.pi
数学常数 π = 3.141592...,精确到可用精度。
35.math.e
数学常数 e = 2.718281...,精确到可用精度。
36.math.inf
浮点正无穷大。 (对于负无穷大,使用 -math.inf 。)相当于``float('inf')`` 的输出。
37.math.nan
浮点“非数字”(NaN)值。 相当于 float('nan') 的输出。