Python math 库教学指南
Python math 库教学指南
一、概述
math 库是 Python 标准库中用于数学运算的核心模块,提供以下主要功能:
- 数学常数(如 π 和 e)
- 基本数学函数(绝对值、取整等)
- 幂与对数运算
- 三角函数
- 双曲函数
- 特殊函数(伽马函数等)
与内置运算符的区别:
- 提供更专业的数学函数实现
- 包含高等数学运算方法
- 支持浮点数特殊处理
二、使用详解
1. 基础使用
import math# 基本运算
print(math.sqrt(25)) # 5.0(平方根)
print(math.fabs(-3.14)) # 3.14(绝对值)
print(math.factorial(5)) # 120(阶乘)# 取整函数
print(math.ceil(3.2)) # 4(向上取整)
print(math.floor(3.9)) # 3(向下取整)
print(math.trunc(-3.7)) # -3(截断小数)
2. 指数与对数
# 指数运算
print(math.pow(2, 3)) # 8.0
print(math.exp(2)) # e² ≈ 7.389# 对数运算
print(math.log(100, 10)) # 2.0
print(math.log10(1000)) # 3.0
print(math.log2(1024)) # 10.0
3. 三角函数(弧度制)
angle = math.radians(60) # 角度转弧度
print(math.sin(angle)) # ≈0.866(正弦值)
print(math.cos(math.pi/4)) # ≈0.707(余弦值)
print(math.degrees(math.pi)) # 180.0(弧度转角度)
4. 数学常数
print(math.pi) # 3.141592653589793
print(math.e) # 2.718281828459045
print(math.inf) # 无穷大
print(math.nan) # 非数字
5. 进阶函数
# 伽马函数
print(math.gamma(5)) # 24.0(等价于4!)# 距离计算
print(math.hypot(3, 4)) # 5.0(直角三角形斜边)# 组合函数
print(math.comb(10, 3)) # 120(组合数C(10,3))
三、综合应用案例
案例1:计算圆相关参数
def circle_calculations(r):circumference = 2 * math.pi * rarea = math.pi * r**2return circumference, areaprint(circle_calculations(5))
# 输出:(31.41592653589793, 78.53981633974483)
案例2:二次方程求解
def solve_quadratic(a, b, c):discriminant = b**2 - 4*a*cif discriminant < 0:return Nonesqrt_disc = math.sqrt(discriminant)x1 = (-b + sqrt_disc) / (2*a)x2 = (-b - sqrt_disc) / (2*a)return x1, x2print(solve_quadratic(1, -5, 6)) # (3.0, 2.0)
案例3:三角函数应用
def triangle_height(angle_deg, base):angle_rad = math.radians(angle_deg)return base * math.tan(angle_rad)print(f"{triangle_height(30, 10):.2f}米") # 输出:5.77米
四、注意事项
-
输入值范围限制:
- 负数平方根会引发 ValueError
- 非数值输入会引发 TypeError
-
精度问题:
print(0.1 + 0.2 == 0.3) # False print(math.isclose(0.1+0.2, 0.3)) # True
-
与内置函数的区别:
- math.sqrt() 比 **0.5 更准确
- math.pow() 处理浮点指数更专业
五、总结建议
- 优先使用 math 库进行复杂数学运算
- 注意角度与弧度的转换
- 处理边界值时使用 math.isclose() 代替直接比较
- 需要更高精度时考虑使用 decimal 模块
建议学习者通过以下方式加深理解:
- 尝试实现自己的数学函数并与 math 库对比
- 解决Project Euler等平台的数学编程问题
- 结合matplotlib进行函数可视化