Skip to content

Python Math 模块详解

math 模块是 Python 的标准库之一,它提供了一系列 C 标准定义的数学函数和常量,可以帮助你进行各种数学运算。本教程将带你了解 math 模块中最常用的一些功能,并提供简单易懂的示例,让你快速上手。

数学常量

math 模块预定义了一些常用的数学常量,方便你在程序中使用。

  • pi: 圆周率 π,约等于 3.141592653589793
  • e: 自然常数 e,约等于 2.718281828459045
  • tau: τ = 2π,约等于 6.283185307179586 (一个圆的周长与半径之比)
  • inf: 正无穷大,可以表示超出浮点数表示范围的数。
  • nan: 非数字 (Not a Number),用于表示未定义或无法表示的数值,例如 0.0/0.0。
python
>>> import math
>>> math.pi
3.141592653589793
>>> math.e
2.718281828459045
>>> math.tau
6.283185307179586
>>> math.inf
inf
>>> math.nan
nan

常用数学函数

math 模块提供了大量的数学函数,下面介绍一些常用的函数:

1. 绝对值函数 fabs()

fabs(x) 函数返回浮点数 x 的绝对值。 即使传入的是整数,返回的也是浮点数。

python
>>> import math
>>> math.fabs(-3.24)
3.24
>>> math.fabs(5)
5.0

2. 最大公约数 gcd() (Python 3.5+)

gcd(a, b, ...) 函数返回整数 a, b 等的最大公约数 (Greatest Common Divisor)。从 Python 3.9 开始,该函数支持传入多个参数。最大公约数是指能够同时整除所有这些整数的最大正整数。

python
>>> import math
>>> math.gcd(54, 24)
6
>>> math.gcd(54, 24, 36) # Python 3.9+
6

3. 向上取整 ceil()

ceil(x) 函数返回大于或等于 x 的最小整数,即向上取整。

python
>>> import math
>>> math.ceil(2.13)
3
>>> math.ceil(-2.13)
-2

4. 向下取整 floor()

floor(x) 函数返回小于或等于 x 的最大整数,即向下取整。

python
>>> import math
>>> math.floor(2.13)
2
>>> math.floor(-2.13)
-3

5. 浮点数取模 fmod()

fmod(x, y) 函数返回 x 除以 y 的余数,结果的符号与 x 相同。

它与 Python 的取模运算符 % 类似,但 fmod() 在处理浮点数时通常更精确。 另外一个关键区别是,fmod() 的结果符号与 x 相同,而 % 的结果符号与 y 相同。

python
>>> import math
>>> math.fmod(2.14, 0.5)
0.14000000000000012
>>> math.fmod(-2.14, 0.5)
-0.14000000000000012
>>> -2.14 % 0.5
0.3599999999999999 # 符号与 y (0.5) 相同

6. 幂运算 pow()

pow(x, y) 函数返回 xy 次方,结果为浮点数。 这相当于 x**y

python
>>> import math
>>> math.pow(5, 2)
25.0
>>> math.pow(2, 0.5)  # 计算平方根
1.4142135623730951

7. 平方根 sqrt()

sqrt(x) 函数返回 x 的平方根。

python
>>> import math
>>> math.sqrt(25)
5.0

8. 三角函数 sin(), cos(), tan()

  • sin(x): 返回 x(以弧度为单位)的正弦值。
  • cos(x): 返回 x(以弧度为单位)的余弦值。
  • tan(x): 返回 x(以弧度为单位)的正切值。

注意: 这些函数接受的参数是弧度,而不是角度。如果需要使用角度,可以使用 math.radians() 函数将角度转换为弧度。

python
>>> import math
>>> math.cos(math.pi/3) # cos(60°) = 0.5
0.5000000000000001
>>> math.sin(math.pi/2) # sin(90°) = 1
1.0
>>> math.tan(math.pi/4) # tan(45°) = 1
0.9999999999999999

>>> math.degrees(math.pi/2) # 弧度转角度
90.0
>>> math.radians(180) # 角度转弧度
3.141592653589793

9. 阶乘 factorial()

factorial(n) 函数计算非负整数 n 的阶乘,即 n! = n × (n-1) × (n-2) × ... × 3 × 2 × 1。 特殊地,0! = 1。

python
>>> import math
>>> math.factorial(5)  # 5! = 5*4*3*2*1 = 120
120
>>> math.factorial(0)
1

希望本教程能够帮助你了解 Python math 模块的基本用法。通过学习这些函数,你可以在 Python 中进行各种复杂的数学计算。