python math数学运算模块
十分想念顺店杂可。。。
Python 的math
模块是标准库中用于数学运算的核心模块,提供了大量基础和高级数学函数,适用于科学计算、工程应用等场景。使用前需先导入:import math
。
一、常用常数
math
模块定义了几个常用数学常数:
math.pi
:圆周率 π(约 3.1415926535...)math.e
:自然常数 e(约 2.7182818284...)math.tau
:圆周率的 2 倍(2π,约 6.283185307...)math.inf
:正无穷大(负无穷大为-math.inf
)math.nan
:非数字(Not a Number,用于表示无效数值)
二、基本数学运算
1. 幂与开方
math.pow(x, y)
:计算 x 的 y 次幂(返回浮点数,与**
运算符类似但更严格,不支持整数幂优化)math.sqrt(x)
:计算 x 的平方根(x 必须≥0)math.exp(x)
:计算 e 的 x 次幂(eˣ)
示例:
import mathprint(math.pow(2, 3)) # 8.0(2的3次方)
print(math.sqrt(25)) # 5.0(25的平方根)
print(math.exp(1)) # 2.718281828459045(e的1次方)
2. 绝对值与符号
math.fabs(x)
:返回 x 的绝对值(始终为浮点数,与内置abs()
不同,abs()
可返回整数)math.copysign(x, y)
:返回 x 的绝对值,但符号与 y 一致
示例:
print(math.fabs(-3.5)) # 3.5
print(math.copysign(5, -2)) # -5.0(值为5,符号与-2一致)
三、三角函数(参数为弧度)
math
模块的三角函数参数均为弧度,若需使用角度,需先用math.radians(angle)
转换。
- 基础三角函数:
math.sin(x)
、math.cos(x)
、math.tan(x)
- 反三角函数:
math.asin(x)
、math.acos(x)
、math.atan(x)
- 角度 / 弧度转换:
math.radians(deg)
(角度转弧度)、math.degrees(rad)
(弧度转角度)
示例:
# 计算30度的正弦值(先转弧度)
deg = 30
rad = math.radians(deg)
print(math.sin(rad)) # 0.49999999999999994(约等于0.5)# 计算π/4弧度的正切值(45度)
print(math.tan(math.pi / 4)) # 0.9999999999999999(约等于1)
四、对数与指数
math.log(x[, base])
:计算以 base 为底 x 的对数(默认 base=e,即自然对数)math.log10(x)
:计算以 10 为底 x 的对数(常用对数)math.log2(x)
:计算以 2 为底 x 的对数(Python 3.3+)
示例:
print(math.log(math.e)) # 1.0(自然对数,ln(e)=1)
print(math.log10(100)) # 2.0(lg(100)=2)
print(math.log2(8)) # 3.0(log₂(8)=3)
五、取整与截断
math.ceil(x)
:向上取整(返回大于等于 x 的最小整数)math.floor(x)
:向下取整(返回小于等于 x 的最大整数)math.trunc(x)
:截断小数部分(仅保留整数部分,与int(x)
类似但返回浮点数)
示例:
print(math.ceil(2.3)) # 3
print(math.floor(2.7)) # 2
print(math.trunc(-3.9)) # -3.0
六、其他常用函数
math.factorial(x)
:计算 x 的阶乘(x 必须为非负整数)math.gcd(a, b)
:计算 a 和 b 的最大公约数(Python 3.5+,a、b 为非负整数)math.lcm(a, b)
:计算 a 和 b 的最小公倍数(Python 3.9+,a、b 为正整数)math.hypot(x, y)
:计算直角三角形的斜边长度(√(x²+y²))
示例:
print(math.factorial(5)) # 120(5! = 5×4×3×2×1)
print(math.gcd(12, 18)) # 6(12和18的最大公约数)
print(math.lcm(4, 6)) # 12(4和6的最小公倍数)
print(math.hypot(3, 4)) # 5.0(3-4-5直角三角形的斜边)
注意事项
math
模块函数主要处理浮点数,输入整数会自动转换为浮点数返回。- 部分函数有输入限制(如
sqrt(x)
要求 x≥0),超出范围会抛出ValueError
。 - 对于复数运算,需使用
cmath
模块(import cmath
),math
模块不支持复数。
更多函数可参考 Python 官方文档:math — 数学函数。