天天看点

python4学习笔记_数字

今天发现一个问题,ide执行

3.1415*2

6.283

print(3.1415*2)

6.283

两个结果一样,书上写的是没有print 是全部精度的值6.28300000000004

但是我实际执行两个值是一样的,不知道是不是python3.6版本修改了.

π

math.pi

3.141592653589793

math.pi*2

6.283185307179586

print(math.pi*2)

6.283185307179586

math.ceil(x)

返回 x 的上限,即大于或者等于 x 的最小整数。如果 x 不是一个浮点数,则委托 x.ceil(), 返回一个 Integral 类的值。

x=12.2

math.ceil(x)

13

math — 数学函数

该模块始终可用。它提供对C 语言标准定义的数学函数的访问。

这些函数不适用于复数;如果你需要计算复数,请使用 cmath 模块中的同名函数。将支持计算复数的函数区分开的目的,来自于大多数开发者并不愿意像数学家一样需要学习复数的概念。得到一个异常而不是一个复数结果使得开发者能够更早地监测到传递给这些函数的参数中包含复数,进而调查其产生的原因。

该模块提供了以下函数。除非另有明确说明,否则所有返回值均为浮点数。

数论与表示函数

math.ceil(x )

返回 x 的上限,即大于或者等于 x 的最小整数。如果 x 不是一个浮点数,则委托 x.ceil(), 返回一个 Integral 类的值。

math.copysign(x,y )

返回一个基于 x 的绝对值和 y 的符号的浮点数。在支持带符号零的平台上,copysign(1.0, -0.0) 返回 -1.0.

math.fabs(x )

返回 x 的绝对值。

math.factorial(x )

返回 x 的阶乘。当x不是整数或者是负数时,引发 ValueError 异常。

math.floor(x )

返回x的最小值,小于或等于x的最大整数。如果x不是float,则委托给x.floor(),它应该返回一个 Integral值。

math.fmod(x,y )

返回,由平台C库定义。请注意,Python表达式可能不会返回相同的结果。C标准的目的是精确地(数学地,无限精度)等于某个整数n,使得结果具有与x相同的符号和小于的数量。Python 返回带有y符号的结果,并且可能无法完全计算浮点参数。例如,是的,但是Python的结果是,它不能完全表示为浮点数,并且是令人惊讶的。出于这个原因,功能fmod(x, y)x % yfmod(x, y)x - n*yabs(y)x % yfmod(-1e-100, 1e100)-1e-100-1e-100 % 1e1001e100-1e-1001e100fmod()使用浮点数时通常首选,而使用整数时则首选Python 。x % y

math.frexp(x )

返回尾数和x的指数作为对。 m是一个浮点数,e是一个完整的整数。如果X为零,退货,否则。这用于以便携方式“分离”浮动的内部表示。(m, e)x == m * 2**e(0.0, 0)0.5 <= abs(m) < 1

math.fsum(可迭代的)

返回迭代中的精确浮点值。通过跟踪多个中间部分和来避免精度损失:

sum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1])

0.9999999999999999

fsum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1])

1.0

该算法的准确性取决于IEEE-754算术保证和舍入模式为半偶的典型情况。在某些非Windows版本中,底层C库使用扩展精度添加,并且有时可能会使中间和加倍,导致它在最低有效位中关闭。

有关进一步讨论和两种替代方法,请参阅ASPN烹饪手册中的准确浮点求和方法。

math.gcd(a,b )

返回整数a和b的最大公约数。如果 a或b非零,那么值是最大的正整数,它将a和b分开。 回报 。gcd(a, b)gcd(0, 0)0

3.5 新版功能.

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

True如果值a和b彼此接近则返回, False否则返回。

根据给定的绝对和相对容差确定两个值是否被认为是接近的。

rel_tol是相对容差 - 它是a和b之间允许的最大差值,相对于a或b的较大绝对值。例如,要设置5%的容差,请通过rel_tol=0.05。默认容差为1e-09,确保两个值在大约9个十进制数字内相同。 rel_tol必须大于零。

abs_tol是最小绝对容差 - 对于接近零的比较很有用。abs_tol必须至少为零。

如果没有错误发生,结果将是: 。abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol)

的IEEE 754特殊值NaN,inf以及-inf将根据IEEE规则处理。具体而言,NaN不被认为接近任何其他值,包括NaN。 inf并且-inf只被认为接近自己。

3.5 新版功能.

参见 PEP 485 - 用于测试近似相等的函数

math.isfinite(x )

返回True如果X既不是无穷大也不是NaN和 False其他。(注意,这0.0 被认为是有限的。)

3.2 新版功能.

math.isinf(x )

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

math.isnan(x )

返回True如果X为NaN(非数字),以及False其他。

math.ldexp(x,i )

返回。这基本上是功能的反转 。x * (2**i)frexp()

math.modf(x )

返回x的小数和整数部分。两个结果都带有x的符号并且是浮点数。

math.remainder(x,y )

返回相对于y的IEEE 754样式的x余数。对于有限x和有限非零y,这是差异,其中是与商的精确值最接近的整数。如果恰好位于两个连续整数之间,则使用最接近的偶数整数。其余从而始终满足。x - n*ynx / yx / ynr = remainder(x, y)abs® <= 0.5 * abs(y)

特殊情况遵循IEEE 754:尤其是 X为任何有限X,并和 提高任何非NaN的X。如果余数运算的结果为零,则该零将与x具有相同的符号。remainder(x, math.inf)remainder(x, 0)remainder(math.inf, x)ValueError

在使用IEEE 754二进制浮点的平台上,此操作的结果始终可以完全表示:不会引入舍入错误。

3.7 新版功能.

math.trunc(x )

将Real值x截断返回到 Integral(通常为整数)。代表来 x.trunc()。

注意frexp()并且modf()它们具有与它们的C等价物不同的调用/返回模式:它们采用单个参数并返回一对值,而不是通过“输出参数”返回它们的第二个返回值(Python中没有这样的东西)。

对于ceil(),floor()和modf()功能,请注意,所有的 足够大的幅度的浮点数字是准确的整数。蟒漂浮通常携带没有精度超过53位(相同于平台C双键型),在这种情况下任何浮点数X与 一定没有小数位。abs(x) >= 2**52

幂函数与对数函数

math.exp(x )

将e提升到幂x,其中e = 2.718281 …是自然对数的基数。这通常比 或更准确。math.e ** xpow(math.e, x)

math.expm1(x )

将e提升到幂x,减去1.这里e是自然对数的基数。对于小浮点数x,减法 可导致精度的显着损失 ; 该 函数提供了一种将此数量计算为完全精度的方法:exp(x) - 1expm1()

from math import exp, expm1

exp(1e-5) - 1 # gives result accurate to 11 places

1.0000050000069649e-05

expm1(1e-5) # result accurate to full precision

1.0000050000166668e-05

3.2 新版功能.

math.log(x [,base ] )

使用一个参数,返回x的自然对数(到基数e)。

使用两个参数,将x的对数返回给定的基数,计算方式为log(x)/log(base)。

math.log1p(x )

返回1 + x(基数e)的自然对数。结果以对于接近零的x精确的方式计算。

math.log2(x )

返回x的base-2对数。这通常比准确更准确 。log(x, 2)

3.3 新版功能.

参见 int.bit_length() 返回表示二进制整数所需的位数,不包括符号和前导零。

math.log10(x )

返回x的基数为10的对数。这通常比准确更准确。log(x, 10)

math.pow(x,y )

回归x提升到了权力y。特殊情况尽可能遵循C99标准的附录’F’。特别是,即使是零或NaN , 也总是返回。如果两个和是有限的, 是负的,而不是整数然后 是未定义的,并提高。pow(1.0, x)pow(x, 0.0)1.0xxyxypow(x, y)ValueError

与内置运算符不同,将其参数转换为type 。使用或内置 函数来计算精确的整数幂。math.pow()floatpow()

math.sqrt(x )

返回x的平方根。

三角函数

math.acos(x )

以弧度为单位返回x的反余弦值。

math.asin(x )

以弧度为单位返回x的反正弦值。

math.atan(x )

以弧度为单位返回x的反正切值。

math.atan2(y,x )

以弧度返回。结果是在和之间。从原点到点的平面中的矢量使该角度为正X轴。关键是两个输入的符号都是已知的,因此它可以计算角度的正确象限。例如,并且都是,但就是。atan(y / x)-pipi(x, y)atan2()atan(1)atan2(1, 1)pi/4atan2(-1, -1)-3*pi/4

math.cos(x )

返回 x 弧度的余弦值。

math.hypot(x,y )

返回欧几里德范数,。这是从原点到点的矢量长度。sqrt(xx + yy)(x, y)

math.sin(x )

返回 x 弧度的正弦值。

math.tan(x )

返回 x 弧度的正切值。

角度转换

math.degrees(x )

将角度 x 从弧度转换为度数。

math.radians(x )

将角度 x 从度数转换为弧度。

双曲函数

双曲函数 是三角函数的类似物,它们基于双曲线而不是圆。

math.acosh(x )

返回x的反双曲余弦值。

math.asinh(x )

返回x的反双曲正弦值。

math.atanh(x )

返回x的反双曲正切。

math.cosh(x )

返回x的双曲余弦值。

math.sinh(x )

返回x的双曲正弦值。

math.tanh(x )

返回x的双曲正切值。

特殊函数

math.erf(x )

返回x处 的错误函数。

该erf()函数可用于计算传统的统计函数,如累积标准正态分布:

def phi(x):

‘Cumulative distribution function for the standard normal distribution’

return (1.0 + erf(x / sqrt(2.0))) / 2.0

3.2 新版功能.

math.erfc(x )

返回x处的互补误差函数。的互补误差函数被定义为 。它用于x的大值,其中从1减去会导致重要性的损失。1.0 - erf(x)

3.2 新版功能.

math.gamma(x )

在x处 返回Gamma函数。

3.2 新版功能.

math.lgamma(x )

在返回Gamma函数的绝对值的自然对数X。

3.2 新版功能.

常数

math.pi

该数学 ematical常数π = 3.141592 …,可用精度。

math.e

该数学 ematical不断é = 2.718281 …,可用精度。

math.tau

该数学 ematical常数τ = 6.283185 …,可用精度。头是一个圆常数等于2 π,一个圆的周长与其半径的比率。要了解有关Tau的更多信息,请查看Vi Hart的视频Pi(仍然)错误,并开始通过吃两倍的馅饼庆祝 Tau日!

3.6 新版功能.

math.inf

浮点正无穷大。(对于负无穷大,请使用 。)相当于。的输出。-math.inffloat(‘inf’)

3.5 新版功能.

math.nan

浮点“非数字”(NaN)值。相当于。的输出 float(‘nan’)。

3.5 新版功能.

CPython实现细节:该模块主要由围绕平台C 数学库函数的薄包装器组成 。特殊情况下的行为在适当情况下遵循C99标准的附录F. 当前实现将引发 无效操作,如或 (其中C99附件F建议发出无效操作或被零除的信号),以及溢出的结果(例如 )。除非一个或多个输入参数是NaN,否则不会从上述任何函数返回NaN; 在这种情况下,大多数函数将返回NaN,但(再次遵循C99附件F)此规则有一些例外,例如或 。mathValueErrorsqrt(-1.0)log(0.0)OverflowErrorexp(1000.0)pow(float(‘nan’), 0.0)hypot(float(‘nan’), float(‘inf’))

请注意,Python不会将信号NaN与安静的NaN区分开来,并且信号NaN的行为仍未明确。典型的行为是将所有NaN视为安静。