math 模块提供对浮点数学的底层C库函数的访问,常用的成员包括:

  1. math.ceil(x):返回 x 的上限,即大于或者等于 x 的最小整数
  2. math.floor(x):返回 x 的向下取整,小于或等于 x 的最大整数。
  3. math.copysign(x, y):返回一个基于 x 的绝对值和 y 的符号的浮点数。在支持带符号零的平台上,copysign(1.0, -0.0) 返回 -1.0.
  4. math.fabs(x):返回 x 的绝对值。
  5. math.factorial(x):以一个整数返回 x 的阶乘。
  6. math.fmod(x, y):返回x与y的余数 。请注意,Python表达式 x % y 可能不会返回相同的结果。C标准的目的是 fmod(x, y) 完全等于 x - n*y 对于某个整数 n ,使得结果具有 与 x 相同的符号和小于 abs(y) 的幅度。Python的 x % y 返回带有 y 符号的结果,并且可能不能完全计算浮点参数。 例如, fmod(-1e-100, 1e100) 是 -1e-100 ,但Python的 -1e-100 % 1e100 的结果是 1e100-1e-100 ,它不能完全表示为浮点数,并且取整为令人惊讶的 1e100 。 出于这个原因,函数 fmod() 在使用浮点数时通常是首选,而Python的 x % y 在使用整数时是首选。
  7. math.frexp(x):返回 x 的尾数和指数作为对​​(m, e)​​。 m 是一个浮点数, e 是一个整数,正好是 x == m * 2**e 。 如果 x 为零,则返回 (0.0, 0) ,否则返回 0.5 <= abs(m) < 1 。这用于以可移植方式“分离”浮点数的内部表示。
  8. math.fsum(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

  1. 该算法的准确性取决于IEEE-754算术保证和舍入模式为半偶的典型情况。在某些非Windows版本中,底层C库使用扩展精度添加,并且有时可能会使中间和加倍,导致它在最低有效位中关闭。
  2. math.gcd(a, b):返回整数 a 和 b 的最大公约数。如果 a 或 b 之一非零,则 gcd(a, b) 的值是能同时整除 a 和 b 的最大正整数。gcd(0, 0) 返回 0。
  3. math.isclose(a, b, *, rel_tol=1e-09, abs_tol=0.0):根据给定的绝对和相对容差判断 a 和 b 的值是否比较接近
  4. math.isnan(x):判断x是否为数字(NaN),不是数字则返回 True ,否则返回 False 。
  5. math.modf(x):返回 x 的小数和整数部分。两个结果都带有 x 的符号并且是浮点数。
  6. math.trunc(x):返回 Real 值 x 截断为 Integral (通常是整数)。
  7. math.exp(x):返回 e 次 x 幂,其中 e = 2.718281… 是自然对数的基数。这通常比 math.e ** x 或 pow(math.e, x) 更精确。
  8. math.expm1(x):返回 e 的 x 次幂,减1。这里 e 是自然对数的基数。
  9. math.log(x[, base]):base缺省值为e,返回给定的 base 的对数 x ,计算为 log(x)/log(base) 。
  10. math.log1p(x):返回 1+x (base e) 的自然对数。以对于接近零的 x 精确的方式计算结果。
  11. math.log2(x):返回 x 以2为底的对数。这通常比 log(x, 2) 更准确。
  12. int.bit_length(): 返回表示二进制整数所需的位数,不包括符号和前导零。
  13. math.log10(x):返回 x 底为10的对数。这通常比 log(x, 10) 更准确。
  14. math.pow(x, y):将返回 x 的 y 次幂。与内置的 ** 运算符不同, math.pow() 将其参数转换为 float 类型。使用 ** 或内置的 pow() 函数来计算精确的整数幂。
  15. math.sqrt(x):返回 x 的平方根。
  16. math.acos(x):以弧度为单位返回 x 的反余弦值。
  17. math.asin(x):以弧度为单位返回 x 的反正弦值。
  18. math.atan(x):以弧度为单位返回 x 的反正切值。
  19. 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 。
  20. math.cos(x):返回 x 弧度的余弦值。
  21. math.hypot(x, y):返回欧几里德范数, sqrt(xx + yy) 。 这是从原点到点 (x, y) 的向量长度。
  22. math.sin(x):返回 x 弧度的正弦值。
  23. math.tan(x):返回 x 弧度的正切值。
  24. math.degrees(x):将角度 x 从弧度转换为度数。
  25. math.radians(x):将角度 x 从度数转换为弧度。
  26. math.acosh(x):返回 x 的反双曲余弦值。
  27. math.asinh(x):返回 x 的反双曲正弦值。
  28. math.atanh(x):返回 x 的反双曲正切值。
  29. math.cosh(x):返回 x 的双曲余弦值。
  30. math.sinh(x):返回 x 的双曲正弦值。
  31. math.tanh(x):返回 x 的双曲正切值。
  32. math.gamma(x):返回 x 处的 伽马函数 值。
  33. math.lgamma(x):返回Gamma函数在 x 绝对值的自然对数。
  34. math.pi:数学常数 π = 3.141592…,精确到可用精度。
  35. math.e:数学常数 e = 2.718281…,精确到可用精度。
  36. math.tau:数学常数 τ = 6.283185…,精确到可用精度。Tau 是一个圆周常数,等于 2π,圆的周长与半径之比。
  37. math.inf:浮点正无穷大。 (对于负无穷大,使用 -math.inf 。)相当于​​float('inf')​​ 的输出。
  38. math.nan:浮点“非数字”(NaN)值。 相当于 float(‘nan’) 的输出。