Python math 模块详解
Python 的 math 模块提供了大量的数学函数,涵盖 基本数学运算、对数、三角函数、幂运算、阶乘、特殊数学常数 等。本文将详细介绍 math 模块的常用函数及应用场景,并给出示例代码。
1. 导入 math 模块
在使用 math 模块前,需要先导入:
import math
2. math 模块的数学常量
| 常量 | 说明 |
|---|---|
math.pi | 圆周率 π,约 3.141592653589793 |
math.e | 自然对数的底数 e,约 2.718281828459045 |
math.tau | 圆常数 τ,等于 2π,约 6.283185307179586 |
math.inf | 正无穷大(float('inf')) |
-math.inf | 负无穷大 |
math.nan | 非数值 NaN(float('nan')) |
示例:
import math
print(math.pi) # 3.141592653589793
print(math.e) # 2.718281828459045
print(math.tau) # 6.283185307179586
print(math.inf) # inf
print(math.nan) # nan
3. 基本数学运算
3.1 取整函数
| 函数 | 说明 |
|---|---|
math.ceil(x) | 向上取整,返回不小于 x 的最小整数 |
math.floor(x) | 向下取整,返回不大于 x 的最大整数 |
math.trunc(x) | 截断小数部分,取整数部分(向 0 取整) |
示例:
print(math.ceil(4.3)) # 5
print(math.floor(4.9)) # 4
print(math.trunc(-3.9)) # -3
3.2 幂次与根号
| 函数 | 说明 |
|---|---|
math.pow(x, y) | 返回 x 的 y 次幂(浮点数) |
math.sqrt(x) | 返回 x 的平方根 |
math.exp(x) | 返回 e^x |
示例:
print(math.pow(2, 3)) # 8.0
print(math.sqrt(16)) # 4.0
print(math.exp(2)) # 7.38905609893065
3.3 对数运算
| 函数 | 说明 |
|---|---|
math.log(x, base) | 以 base 为底的对数,默认 base=e |
math.log10(x) | 以 10 为底的对数 |
math.log2(x) | 以 2 为底的对数 |
示例:
print(math.log(8, 2)) # 3.0
print(math.log10(100)) # 2.0
print(math.log2(16)) # 4.0
3.4 绝对值与符号判断
| 函数 | 说明 |
|---|---|
math.fabs(x) | 取 x 的绝对值(浮点数) |
math.copysign(x, y) | 取 x 的绝对值,并赋予 y 的符号 |
示例:
print(math.fabs(-4.5)) # 4.5
print(math.copysign(3, -7)) # -3.0
3.5 最大公约数与最小公倍数
| 函数 | 说明 |
|---|---|
math.gcd(a, b) | 计算 a 和 b 的最大公约数 |
math.lcm(a, b) | 计算 a 和 b 的最小公倍数(Python 3.9+) |
示例:
print(math.gcd(48, 18)) # 6
print(math.lcm(4, 6)) # 12
3.6 阶乘
| 函数 | 说明 |
|---|---|
math.factorial(n) | 计算 n!(n 的阶乘) |
示例:
print(math.factorial(5)) # 120 (5*4*3*2*1)
4. 三角函数
4.1 角度与弧度转换
| 函数 | 说明 |
|---|---|
math.degrees(x) | 弧度转换为角度 |
math.radians(x) | 角度转换为弧度 |
示例:
print(math.degrees(math.pi)) # 180.0
print(math.radians(180)) # 3.141592653589793
4.2 常用三角函数
| 函数 | 说明 |
|---|---|
math.sin(x) | 正弦函数(弧度) |
math.cos(x) | 余弦函数(弧度) |
math.tan(x) | 正切函数(弧度) |
示例:
angle = math.radians(30) # 30° 转弧度
print(math.sin(angle)) # 0.5
print(math.cos(angle)) # 0.86602540378
print(math.tan(angle)) # 0.57735026919
4.3 反三角函数
| 函数 | 说明 |
|---|---|
math.asin(x) | 反正弦函数,返回弧度 |
math.acos(x) | 反余弦函数,返回弧度 |
math.atan(x) | 反正切函数,返回弧度 |
示例:
print(math.degrees(math.asin(0.5))) # 30.0
print(math.degrees(math.acos(0.5))) # 60.0
print(math.degrees(math.atan(1))) # 45.0
5. 特殊数学函数
| 函数 | 说明 |
|---|---|
math.isfinite(x) | 是否为有限数 |
math.isinf(x) | 是否为无穷大 |
math.isnan(x) | 是否为 NaN |
示例:
print(math.isfinite(10)) # True
print(math.isinf(math.inf)) # True
print(math.isnan(math.nan)) # True
6. 总结
math 模块为数学计算提供了丰富的函数,常用功能包括:
- 基本运算(取整、幂、根号)
- 对数运算
- 最大公约数/最小公倍数
- 三角函数与角度转换
- 数学常量(π、e、∞)
- 特殊数值判断
在科学计算、工程计算、数据分析等领域,math 模块是一个不可或缺的工具。更多详细内容请关注其他相关文章!