Python 库手册:math 常用数学函数模块

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 搭配使用可进行概率计算与模拟建模。

图片

“点赞有美意,赞赏是鼓励”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值