Python Math 模块详解
math
模块是 Python 的标准库之一,它提供了一系列 C 标准定义的数学函数和常量,可以帮助你进行各种数学运算。本教程将带你了解 math
模块中最常用的一些功能,并提供简单易懂的示例,让你快速上手。
数学常量
math
模块预定义了一些常用的数学常量,方便你在程序中使用。
pi
: 圆周率 π,约等于 3.141592653589793e
: 自然常数 e,约等于 2.718281828459045tau
: τ = 2π,约等于 6.283185307179586 (一个圆的周长与半径之比)inf
: 正无穷大,可以表示超出浮点数表示范围的数。nan
: 非数字 (Not a Number),用于表示未定义或无法表示的数值,例如 0.0/0.0。
>>> 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
的绝对值。 即使传入的是整数,返回的也是浮点数。
>>> 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 开始,该函数支持传入多个参数。最大公约数是指能够同时整除所有这些整数的最大正整数。
>>> import math
>>> math.gcd(54, 24)
6
>>> math.gcd(54, 24, 36) # Python 3.9+
6
3. 向上取整 ceil()
ceil(x)
函数返回大于或等于 x
的最小整数,即向上取整。
>>> import math
>>> math.ceil(2.13)
3
>>> math.ceil(-2.13)
-2
4. 向下取整 floor()
floor(x)
函数返回小于或等于 x
的最大整数,即向下取整。
>>> 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
相同。
>>> 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)
函数返回 x
的 y
次方,结果为浮点数。 这相当于 x**y
。
>>> import math
>>> math.pow(5, 2)
25.0
>>> math.pow(2, 0.5) # 计算平方根
1.4142135623730951
7. 平方根 sqrt()
sqrt(x)
函数返回 x
的平方根。
>>> import math
>>> math.sqrt(25)
5.0
8. 三角函数 sin()
, cos()
, tan()
sin(x)
: 返回x
(以弧度为单位)的正弦值。cos(x)
: 返回x
(以弧度为单位)的余弦值。tan(x)
: 返回x
(以弧度为单位)的正切值。
注意: 这些函数接受的参数是弧度,而不是角度。如果需要使用角度,可以使用 math.radians()
函数将角度转换为弧度。
>>> 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。
>>> import math
>>> math.factorial(5) # 5! = 5*4*3*2*1 = 120
120
>>> math.factorial(0)
1
希望本教程能够帮助你了解 Python math
模块的基本用法。通过学习这些函数,你可以在 Python 中进行各种复杂的数学计算。