本文主要介绍了Python math 模块完全指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
一、模块概述
math
模块是 Python 标准库中的数学运算模块,提供:
- 基础数学运算函数
- 三角函数与双曲函数
- 数论相关函数
- 特殊数学常数
- 对数与指数计算
二、核心功能详解
1. 数值处理函数
函数 | 描述 | 示例 |
---|
ceil(x) | 向上取整 | ceil(3.2) → 4 |
floor(x) | 向下取整 | floor(3.8) → 3 |
fabs(x) | 绝对值(浮点型) | fabs(-5) → 5.0 |
factorial(x) | 阶乘计算 | factorial(5) → 120 |
gcd(a, b) | 最大公约数 | gcd(12, 18) → 6 |
fsum(iter) | 精确浮点求和 | fsum([0.1]*10) → 1.0 |
print(math.ceil(math.pi)) # 4
print(math.floor(math.e)) # 2
print(math.gcd(48, 18)) # 6
2. 幂与对数
函数 | 描述 | 数学公式 |
---|
sqrt(x) | 平方根 | √x |
pow(x, y) | x的y次幂 | xʸ |
exp(x) | e的x次幂 | eˣ |
log(x[, b]) | 对数(默认自然对数) | log_b(x) |
print(math.sqrt(256)) # 16.0
print(math.log(100, 10)) # 2.0
print(math.exp(2)) # 7.38905609893065
3. 三角函数
函数 | 描述 | 输入单位 |
---|
sin(x) | 正弦函数 | 弧度 |
cos(x) | 余弦函数 | 弧度 |
tan(x) | 正切函数 | 弧度 |
degrees(x) | 弧度转角度 | - |
radians(x) | 角度转弧度 | - |
angle = math.radians(45)
print(math.sin(angle)) # 0.7071067811865476
print(math.degrees(math.pi)) # 180.0
三、特殊常数与函数
1. 数学常数
常数 | 值 | 精度 |
---|
math.pi | π ≈ 3.141592653589793 | 15位小数 |
math.e | 自然对数底 ≈ 2.718281828459045 | 15位小数 |
math.tau | τ = 2π ≈ 6.283185307179586 | 15位小数 |
math.inf | 正无穷大 | IEEE 754 |
math.nan | 非数值 | IEEE 754 |
2. 高级函数
函数 | 描述 |
---|
gamma(x) | Gamma函数 |
erf(x) | 误差函数 |
comb(n, k) | 组合数 C(n,k) |
isclose(a,b) | 浮点数近似相等判断 |
print(math.comb(10,3)) # 120 (Python 3.10+)
print(math.gamma(5)) # 24.0 (等效 4! )
print(math.isclose(0.1+0.2, 0.3)) # True
四、实战应用案例
1. 几何计算
def circle_area(radius):
return math.pi * radius**2
def sphere_volume(radius):
return (4/3) * math.pi * radius**3
2. 概率计算
def normal_pdf(x, mu=0, sigma=1):
"""正态分布概率密度函数"""
coeff = 1 / (sigma * math.sqrt(2*math.pi))
exponent = -0.5 * ((x - mu)/sigma)**2
return coeff * math.exp(exponent)
3. 工程计算
def compound_interest(principal, rate, years):
"""复利计算"""
return principal * math.exp(rate * years)
五、注意事项
- 输入类型:所有函数仅接受整数或浮点数,不接受复数(使用
cmath
处理复数) - 精度限制:浮点数计算存在精度误差(如
math.sqrt(2)**2 ≠ 2
) - 异常处理:
try:
print(math.sqrt(-1))
except ValueError as e:
print("错误:", e) # 负数平方根
- 版本差异:
math.prod()
需要 Python 3.8+
math.comb()
需要 Python 3.10+
六、性能优化建议
- 批量计算优先使用
NumPy
数组 - 重复调用时缓存常数值
PI = math.pi # 避免重复查找模块属性
- 使用
math.fsum
替代内置 sum
进行高精度浮点求和
到此这篇关于Python math 模块完全指南的文章就介绍到这了,更多相关Python math 模块内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!