【数字和数学模块】math—数学函数
程序员文章站
2022-04-21 18:53:46
下面讲解Python标准库中的math模块。官方文档:https://docs.python.org/zh-cn/3.8/library/math.html注:该模块定义的函数不适用于复数;如果需要计算复数,请使用cmath模块中的同名函数。cmath模块官方文档:https://docs.python.org/zh-cn/3.8/library/cmath.html#constantsmath——数学函数模块1.数论与表示函数2.幂函数与对数3.三角函数4.角度转换5.双曲函数6.特殊函数7.常量...
本篇讲解Python标准库中的math模块。
官方文档:https://docs.python.org/zh-cn/3.8/library/math.html
注:该模块定义的函数不适用于复数;如果需要计算复数,请使用cmath模块中的同名函数。cmath模块官方文档:https://docs.python.org/zh-cn/3.8/library/cmath.html#constants
1.数论与表示函数
函数 | 说明 |
---|---|
math.ceil (x) |
返回 x 的上限,即大于或者等于 x 的最小整数。 |
math.comb (n,k) |
返回不重复且无顺序地从 n 项中选择 k 项的方式总数 |
math.fabs (x) |
返回 x 的绝对值。 |
math.factorial (x) |
以一个整数返回 x 的阶乘。 如果 x 不是整数或为负数时则将引发 ValueError。 |
math.floor (x) |
返回 x 的向下取整,小于或等于 x 的最大整数。 |
math.fmod (x,y) |
求余 |
math.fsum (iterable) |
返回迭代中的精确浮点值。通过跟踪多个中间部分和来避免精度损失。 |
math.gcd (a,b) |
返回整数 a 和 b 的最大公约数。 |
math.isclose (a, b,rel_tol=1e-09) |
若 a 和 b 的值比较接近则返回 True ,否则返回 False (注:IEEE 754特殊值 NaN , inf 和 -inf 将根据IEEE规则处理。具体来说, NaN 不被认为接近任何其他值,包括 NaN , inf 和 -inf 只被认为接近自己。) |
math.isinf (x) |
如果 x 是正或负无穷大,则返回 True ,否则返回 False 。 |
math.isfinite (x) |
如果 x 既不是无穷大也不是NaN,则返回 True ,否则返回 False 。 |
math.isnan (x) |
如果 x 是 NaN(不是数字),则返回 True ,否则返回 False 。 |
math.isqrt (x) |
返回非负整数 n 的整数平方根(这就是对 n 的实际平方根向下取整,或者相当于使得 a² ≤ n 的最大整数 a)。 |
math.modf (x) |
返回 x 的小数和整数部分。两个结果都带有 x 的符号并且是浮点数。 |
math.perm (n,k=None) |
返回不重复且有顺序地从 n 项中选择 k 项的方式总数。 |
math.prod (iterable, *, start=1) |
计算输入的 iterable 中所有元素的积。 积的默认 start 值为 1。 |
math.trunc (x) |
返回 Real 值 x 截断为 Integral(通常是整数)。 |
import math
print(math.ceil(5.0)) # 5
print(math.ceil(5.4)) # 6
print(math.floor(4.0)) # 4
print(math.floor(4.9)) # 4
print(math.trunc(3.14)) # 3
print(math.modf(3.14)) # (0.14000000000000012, 3.0)
print(math.comb(10,4)) # 210
print(math.perm(10,4)) # 5040
print(math.fabs(-2.5)) # 2.5
print(math.factorial(5)) # 120
print(math.fmod(10,3)) # 1.0
print(math.fsum([2,1,5,6,7])) # 21.0
print(math.prod([2,1,5,6,7])) # 420
print(math.gcd(24,36)) # 12
print(math.isqrt(24)) # 4
print(math.isqrt(16)) # 4
print(math.isclose(2.00001,2)) # False
print(math.isclose(2.00001,2,rel_tol=1e-05)) # True
print(math.isinf(9000000000000000/0.0000000000001)) # False
print(math.isinf(math.inf)) # True
print(math.isfinite(235212)) # True
print(math.isnan(math.nan)) # True
2.幂函数与对数
函数 | 说明 |
---|---|
math.exp (x) |
返回 e 次 x 幂,其中 e = 2.718281… 是自然对数的基数。 |
math.expm1 (x) |
返回 e 的 x 次幂减1。这里 e 是自然对数的基数。 |
math.log (x,[base]) |
使用一个参数,返回 x 的自然对数(底为 e )。使用两个参数,返回给定的 base 的对数 x ,计算为 log(x)/log(base) 。 |
math.log2 (x) |
返回 x 以2为底的对数。这通常比 log(x, 2) 更准确。 |
math.log10 (x) |
返回 x 以10为底的对数。这通常比 log(x, 10) 更准确。 |
math.pow (x,y) |
将返回 x 的 y 次幂。 |
math.sqrt (x) |
返回 x 的平方根。 |
import math
print(math.exp(3)) # 20.085536923187668
print(math.expm1(3)) # 19.085536923187668
print(math.log2(16)) # 4.0
print(math.log10(1000)) # 3.0
print(math.log(16,2)) # 4.0
print(math.log(50,3)) # 3.5608767950073115
print(math.pow(2,4)) # 16.0
print(math.sqrt(3)) # 1.7320508075688772
3.三角函数
函数 | 说明 |
---|---|
math.cos (x) |
返回 x 弧度的余弦值。 |
math.sin (x) |
返回 x 弧度的正弦值。 |
math.tan (x) |
返回 x 弧度的正切值。 |
math.acos (x) |
以弧度为单位返回 x 的反余弦值。 |
math.asin (x) |
以弧度为单位返回 x 的反正弦值。 |
math.atan (x) |
以弧度为单位返回 x 的反正切值。 |
math.atan2 (y,x) |
以弧度为单位返回 atan(y / x) 。atan2() 的点的两个输入的符号都是已知的,因此它可以计算角度的正确象限。结果是在 -pi 和 pi 之间。 |
import math
x = math.pi / 3
print(x) # 1.0471975511965976
y1 = math.cos(x)
y2 = math.sin(x)
y3 = math.tan(x)
print(y1) # 0.5000000000000001
print(y2) # 0.8660254037844386
print(y3) # 1.7320508075688767
print(math.acos(y1)) # 1.0471975511965976
print(math.asin(y2)) # 1.0471975511965976
print(math.atan(y3)) # 1.0471975511965976
print(math.atan2(math.sqrt(3),1)) # 1.0471975511965976
print(math.atan2(-math.sqrt(3),1)) # -1.0471975511965976
4.角度转换
函数 | 说明 |
---|---|
math.degrees (x) |
将角度 x 从弧度转换为度数。 |
math.radians (x) |
将角度 x 从度数转换为弧度。 |
import math
x = math.pi
deg = math.degrees(x)
rad = math.radians(deg)
print(deg) # 180.0
print(rad) # 3.141592653589793
5.双曲函数
函数 | 说明 |
---|---|
math.cosh (x) |
返回 x 的双曲余弦值。 |
math.sinh (x) |
返回 x 的双曲正弦值。 |
math.tanh (x) |
返回 x 的双曲正弦值。 |
math.acosh (x) |
返回 x 的反双曲余弦值。 |
math.asinh (x) |
返回 x 的反双曲正弦值。 |
math.atanh (x) |
返回 x 的反双曲正切值。 |
import math
x = 1.5
y1 = math.cosh(x)
y2 = math.sinh(x)
y3 = math.tanh(x)
print(y1) # 2.352409615243247
print(y2) # 2.1292794550948173
print(y3) # 0.9051482536448664
print(math.acosh(y1)) # 1.5
print(math.asinh(y2)) # 1.5
print(math.atanh(y3)) # 1.4999999999999998
6.特殊函数
函数 | 说明 |
---|---|
math.erf (x) |
返回 x 处的 error function。erf() 函数可用于计算传统的统计函数,如累积标准正态分布。 |
math.erfc (x) |
返回 x 处的互补误差函数。 互补错误函数 定义为 1.0 - erf(x) 。 |
math.gamma (x) |
返回 x 处的 伽马函数 值。 |
math.lgamma (x) |
返回Gamma函数在 x 绝对值的自然对数 |
import math
print(math.erf(2)) # 0.9953222650189527
print(math.erfc(2)) # 0.004677734981047266
print(math.gamma(0.5)) # 1.7724538509055159
print(math.lgamma(3)) # 0.693147180559945
7.欧几里得函数
函数 | 说明 |
---|---|
math.dist (p,q) |
返回 p 与 q 两点之间的欧几里得距离。 |
math.hypot (coordinates) |
返回coordinates的欧几里得范数。 |
math.dist
(p,q)等价于 sqrt(sum((px - qx) ** 2.0 for px, qx in zip(p, q)))
math.hypot
(coordinates)等价于 sqrt(sum(x**2 for x in coordinates))
import math
p1 = (0,0)
q1 = (3,4)
print(math.dist(p1,q1)) # 5.0
p2 = (1,5,3,-5)
q2 = (2,4,6,1)
print(math.dist(p2,q2)) # 6.855654600401045
print(math.hypot(3,4)) # 5.0
print(math.hypot(3,4,10,5)) # 12.24744871391589
8.常量
常量 | 说明 |
---|---|
math.pi
|
数学常数 π = 3.141592…,精确到可用精度。 |
math.e
|
数学常数 e = 2.718281…,精确到可用精度。 |
math.tau
|
数学常数 τ = 6.283185…,精确到可用精度。Tau 是一个圆周常数,等于 2π,圆的周长与半径之比。 |
math.inf
|
浮点正无穷大。(对于负无穷大,使用 -math.inf 。)相当于 float('inf') 的输出 |
math.nan
|
浮点“非数字”(NaN)值。 相当于 float('nan') 的输出 |
import math
print(math.pi) # 3.141592653589793
print(math.e) # 2.718281828459045
print(math.tau) # 6.283185307179586
print(math.inf) # inf
print(-math.inf) # -inf
print(math.nan) # nan
本文地址:https://blog.csdn.net/weixin_43675917/article/details/109610289
下一篇: 在终端启动Python时报错的解决方案
推荐阅读
-
Python 标准类库-数字和数学模块之decimal使用简介
-
Python的math模块中的常用数学函数整理
-
while应用和函数学习
-
C++下的const:const修饰变量、const修饰的迭代器和const修饰函数学习讲解
-
学习笔记:用c语言编写泰勒展开公式myexp()实现math.h.数学函数库中的exp()函数。并与exp()函数做比较。精度相同。
-
Oracle数学函数和SQL数学函数的区别
-
Python3关于数学类、随机数模块、字符串的相关操作、代码和用法分析讲解
-
表格梳理python内置数学模块math分析详解
-
php isset函数和empty函数学习
-
Python 标准类库-数字和数学模块之decimal使用简介