Python 基础 (标准库):math (数学函数)

2024-06-17 1787阅读

1. 官方文档

math --- 数学函数 — Python 3.12.2 文档

cmath --- 关于复数的数学函数 — Python 3.12.2 文档

Python 中,可以使用内置的数学运算符,例如加法 (+)、减法 (-)、除法 (/) 和乘法 (*) 进行简单的数学运算。不过,更高级的运算,如指数函数、对数函数、三角函数或幂函数,并没有内置函数,需要使用 Python 标准库中一个专门为高级数学运算设计的模块:math 模块。

 2. 常量

名称

描述

Pi

圆周率 π 是圆的周长 (c) 与直径 (d) 之比,无理数。

math.pi 返回一个保留到小数点后 15 位的浮点数。

Tau

圆的周长与半径之比(Tau=2π),无理数。

math.tau 返回一个保留到小数点后 15 位的浮点数。

许多数学表达式使用 2π,因而使用 tau 可以简化方程。例如,不用 2πr 来计算圆的周长,用更简单的方程 τr。可以根据需要自由地使用 2π 或 τ。

Euler’s number

欧拉常数 (e) 是自然对数的底,无理数,约等于2.71828。

math.e 返回一个保留到小数点后 15 位的浮点数。

欧拉常数是一个重要常数,有许多实际用途,如计算人口随时间的增长率或放射性衰变率。

Infinity

无穷是一个数学概念,表示无限,分为正无穷大和负无穷大。

math.inf  等价于 float("inf")

Not a number (NaN)

NaN 不是一个数学概念,它起源于计算机科学领域,作为对非数字值的引用。NaN 值可能是由无效的输入产生的,或表示应该是数字的变量已被文本字符或符号损坏。

math.nan 等价于 float("nan")

请使用 math.isnan() 函数来检查一个数字是否为 NaN,而不能使用 is 或 ==。

 代码说明:

math.pi
# 3.141592653589793
math.tau
# 6.283185307179586
math.e
# 6.283185307179586
math.inf
# inf
math.nan
# nan
math.pi * 2 == math.tau
# True
float('inf') == math.inf
# True
math.inf == math.inf
# True
math.inf == -math.inf
# False
float('nan') == math.nan
# False
math.isnan(math.nan)
# True
math.isnan(float('nan'))
# True

3. 数论与表示函数

3.1 函数概览

math.factorial(n)

返回 n 的阶乘。

如果 n 不是正数或不是整数会引发 ValueError。

自 3.9 版本,接受具有整数值的浮点数 (例如 5.0) 的行为被弃用。

math.comb(n, k)

在 3.8 版本加入.

组合数,返回不重复且无顺序地从 n 项中选择 k 项的方式总数。

具体来说:

当 k n 时取值为零。

也叫二项式系数,它也是 (1 + x)ⁿ 的多项式展开中第 k 项的系数。

如果任一参数不为整数则会引发 TypeError。 如果任一参数为负数则会引发 ValueError。

math.perm(n, k=None)

在 3.8 版本加入.

排列数,返回不重复且有顺序地从 n 项中选择 k 项的方式总数。

具体来说:

当 k  n 时取值为零。

如果 k 未指定或为 None,则 k 默认值为 n 并且函数将返回 n!。

如果任一参数不为整数则会引发 TypeError。 如果任一参数为负数则会引发 ValueError。

math.ceil(x)

返回 x 的向上取整,即大于或等于 x 的最小的整数。

输入整数值时,返回相同的数字;输入非数值内容(如字符串)引发 TypeError。

math.floor(x)

返回 x 的向下取整,小于或等于 x 的最大整数。

输入整数值时,返回相同的数字;输入非数值内容(如字符串)引发 TypeError。

math.trunc(x)

返回去除小数部分的 x ,只留下整数部分。 

trunc() 对于正的 x 相当于 floor() ,对于负的 x 相当于 ceil() ,向 0 取近似(rounded downward toward zero)。

math.modf(x)

返回 x 的小数和整数部分。

两个结果都带有 x 的符号并且是浮点数。

math.isinf(x)

如果 x 是正或负无穷大,则返回 True ,否则返回 False。

math.isnan(x)

如果 x 是 NaN,则返回 True ,否则返回 False。

math.isfinite(x)

如果 x 既不是无穷大也不是 NaN,返回 True,否则返回 False。

math.isclose(a, b, *, rel_tol=1e-09, abs_tol=0.0)

根据给定的绝对差值和相对差值,确定两个值是否可视为是接近的,若 a、b 的值比较接近返回 True,否则返回 False。

Relative tolerance (rel_tol): 百分数表示的相对于输入数据的量级的最大差值(也称差值容忍度或阈值,小于对应值时才能才认为两数接近)

例如,想要设置 5% 的容差,需传递 rel_tol=0.05。

默认值是 1e-09=0.000000001,两数至少小数点后9位都一致。

Absolute tolerance (abs_tol): 绝对值形式的最大差值,不考虑输入数据的量级。默认值是 0。  

判定规则可以概括为: 

abs(a-b) 

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]