math 模块是 Python 自带的数学函数库,提供了大量的数学运算函数,特别适用于浮点数计算和科学计算,涵盖了数学运算(如取整、取绝对值、对数等)、三角函数、幂函数与根号以及常用数学常量(如 π 和 e)等。
常见应用场景包括:
(1)科学计算、物理建模、图形绘制。
(2)游戏开发中的角度与坐标转换。
(3)数据分析中的对数、指数、舍入。
(4)与 random、statistics 等模块联合使用。
◆ ◆ ◆
核心概念
1、math 模块主要基于 C 标准库,计算速度快,精度高。
2、所有函数均作用于数字(特别是 float 类型),不支持列表或数组(如需支持,可使用 numpy 库)。
3、不支持复数计算,复数数学请使用 cmath 模块。
◆ ◆ ◆
应用举例
例 1:求圆的面积和周长
import math
r = 5area = math.pi * r ** 2 # 圆面积 πr²perimeter = 2 * math.pi * r # 圆周长 2πr
print("Area:", area)print("Perimeter:", perimeter)
例 2:计算三角函数值
import math
angle = math.radians(30) # 将角度转为弧度print("sin(30°):", math.sin(angle))print("cos(30°):", math.cos(angle))
例 3:对数与指数函数
import math
print("log10(100):", math.log10(100)) # 对数(以 10 为底)print("ln(e):", math.log(math.e)) # 自然对数 ln(e) = 1print("exp(2):", math.exp(2)) # e 的平方
例 4:计算两点间距离(欧几里得距离)
import math
x1, y1 = 2, 3x2, y2 = 7, 8
distance = math.hypot(x2 - x1, y2 - y1) # √((x2 - x1)² + (y2 - y1)²)print("两点间距离:", distance)
例 5:浮点数分解与重构
import math
x = 123.456fractional, integer = math.modf(x) # 返回小数部分和整数部分print("小数部分:", fractional)print("整数部分:", integer)
# 重构:整数 + 小数部分reconstructed = fractional + integerprint("还原:", reconstructed)
◆ ◆ ◆
常用函数及内置常量速览
ceil(x)
返回不小于 x 的最小整数(向上取整)。
参数:x 为数字
返回:整数
copysign(x, y)
返回 x 的绝对值,符号与 y 相同。
参数:两个数字
返回:浮点数
cos(x) / sin(x) / tan(x)
分别返回余弦、正弦、正切。
参数:x 为弧度
返回:浮点数
degrees(x) / radians(x)
弧度转角度 / 角度转弧度。
参数:x 为角度或弧度
返回:浮点数
exp(x)
返回 e 的 x 次方。
参数:x 为浮点数
返回:浮点数
fabs(x)
返回浮点数绝对值。
与内建函数 abs() 类似,但返回值为 float。
factorial(n)
返回 n 的阶乘(n!)。
参数:非负整数 n
返回:整数
floor(x)
向下取整,返回不大于 x 的最大整数。
参数:数字
返回:整数
fmod(x, y)
返回 x 除以 y 的浮点数余数。
与 x % y 类似,但保留符号更准确。
frexp(x)
将浮点数 x 分解为尾数和指数 (m, e),满足:x == m * 2**e。
返回:二元组
gcd(a, b)
返回 a 和 b 的最大公约数。
参数:整数
返回:整数
hypot(x, y)
计算直角三角形斜边长度(√(x² + y²))。
isfinite(x) / isinf(x) / isnan(x)
分别判断:是否为有限数、无穷大、NaN(不是数字)。
log(x[, base])
对数函数,默认以 e 为底,也可指定底数。
参数:x > 0,base > 0
返回:浮点数
log10(x) / log2(x)
以 10、2 为底的对数。
modf(x)
返回小数部分和整数部分的元组(两个 float)。
pow(x, y)
等价于 x ** y,返回 x 的 y 次幂。
sqrt(x)
返回 x 的平方根。
参数:x ≥ 0
返回:浮点数
trunc(x)
截取整数部分(丢弃小数,不四舍五入)。
内置常量
math.pi
圆周率 π ≈ 3.141592653589793
math.e
自然对数的底数 e ≈ 2.718281828459045
math.tau
圆的全圆常数 τ(tau),等于 2π ≈ 6.283185307179586
常用于单位圆、傅里叶变换等数学应用。
math.inf
正无穷大(Infinity)
可用于表示溢出值、比较极限等。
示例:math.inf > 1e1000 为 True。
math.nan
表示“不是数字”(Not a Number)
常在非法数学运算中出现,如 0.0 / 0.0。
示例:math.isnan(math.nan) 返回 True。
◆ ◆ ◆
使用建议
1、math 模块适用于标量浮点运算,不支持复数或数组运算。
2、处理复数可使用 cmath 模块;大规模数值处理可使用 numpy。
3、与 random、statistics 搭配使用可进行概率计算与模拟建模。
“点赞有美意,赞赏是鼓励”