1

math模块是什么?

Python的math模块提供了许多数学函数,帮助我们进行各种数学计算。就像是给你的Python安装了一个数学工具箱!

为什么需要math模块?

虽然Python本身可以进行基本的数学运算(加减乘除),但涉及到三角函数、对数、指数等高级运算,就需要math模块的帮助了。

如何使用math模块?

只需要在程序开始时导入math模块:

import math

💡 注意:math模块主要用于实数运算。如果需要复数运算,可以使用cmath模块。

2

数学常数

math模块提供了一些常用的数学常数,就像数学中的”固定值”,可以直接使用。

常数 描述 近似值
math.pi 圆周率 π 3.141592653589793
math.e 自然常数 e 2.718281828459045
math.tau 2π(数学常数 τ) 6.283185307179586
math.inf 正无穷大 inf
math.nan 非数字 (Not a Number) nan
# 计算圆的面积
radius = 5
area = math.pi * radius ** 2
print(“圆的面积:”, area) # 输出: 圆的面积: 78.53981633974483
3

基础数学函数

这些函数就像数学中的”基本工具”,用于处理数字的基本操作。

函数 描述 示例
math.ceil(x) 向上取整(大于或等于x的最小整数) math.ceil(4.2) → 5
math.floor(x) 向下取整(小于或等于x的最大整数) math.floor(4.9) → 4
math.fabs(x) 绝对值(返回浮点数) math.fabs(-10) → 10.0
math.factorial(x) 阶乘(x!) math.factorial(5) → 120
math.gcd(a, b) 最大公约数 math.gcd(12, 18) → 6
math.isfinite(x) x是否有限 math.isfinite(10) → True
math.isinf(x) x是否是无穷大 math.isinf(math.inf) → True
math.isnan(x) x是否是非数字 math.isnan(math.nan) → True
# 计算10的阶乘
num = 10
result = math.factorial(num)
print(f”{num}的阶乘是: {result}”) # 3628800
4

幂与对数函数

这些函数用于处理指数和对数计算,就像数学中的”增长和缩放”工具。

函数 描述 示例
math.exp(x) e的x次幂 math.exp(1) → 2.71828…
math.log(x[, base]) 对数函数(默认自然对数) math.log(100, 10) → 2.0
math.log10(x) 以10为底的对数 math.log10(100) → 2.0
math.log2(x) 以2为底的对数 math.log2(8) → 3.0
math.pow(x, y) x的y次方 math.pow(2, 3) → 8.0
math.sqrt(x) 平方根 math.sqrt(25) → 5.0

实际应用场景

对数函数常用于衡量数据的增长倍数(如pH值、地震级数),指数函数常用于计算复利增长或放射性衰变。

# 计算复利
principal = 1000 # 本金
rate = 0.05 # 年利率
time = 10 # 年数

amount = principal * math.exp(rate * time)
print(f”10年后的金额: {amount:.2f}”) # 输出: 1648.72
5

三角函数

这些函数用于处理角度和三角形相关的计算,在几何、物理和工程中广泛应用。

函数 描述 示例
math.sin(x) 正弦(x为弧度) math.sin(math.pi/2) → 1.0
math.cos(x) 余弦 math.cos(0) → 1.0
math.tan(x) 正切 math.tan(math.pi/4) → 1.0
math.asin(x) 反正弦(结果在[-π/2, π/2]) math.asin(1) → 1.57079…
math.acos(x) 反余弦(结果在[0, π]) math.acos(0) → 1.57079…
math.atan(x) 反正切(结果在[-π/2, π/2]) math.atan(1) → 0.78539…
math.atan2(y, x) 计算点(x, y)的角度(考虑象限) math.atan2(1, 1) → 0.78539…

⚠️ 重要提示:Python三角函数使用弧度而非角度!使用前可能需要转换

# 计算30度角的正弦值
angle_degrees = 30
angle_radians = math.radians(angle_degrees)
sin_value = math.sin(angle_radians)
print(f”sin(30°) = {sin_value:.2f}”) # 输出: sin(30°) = 0.50
💡

使用技巧与注意事项

给编程小白的建议

作为Python初学者,学习math模块时请记住以下几点:

  • 导入模块:使用前记得写import math
  • 函数调用:使用math.函数名的方式调用函数
  • 角度转换:三角函数使用弧度,可用math.radians()转换角度为弧度
  • 整数除法:Python中5/2=2.5,不同于整数除法5//2=2
  • 精度问题:浮点数计算可能存在微小误差(计算机通病)
  • 错误处理:负数开平方等操作会引发ValueError
# 错误处理示例
try:
    result = math.sqrt(-1)
except ValueError as e:
    print(“错误:”, e) # 输出: 错误:math domain error