在Python中定义一个无限的值

在这篇文章中,我们将学习什么是 Python 中的无限值,以及为什么我们要使用无限值。我们还将学习如何在 Python 中用不同的方法来定义一个无限值。

在 Python 中定义无限值的传统方法

当你听到无穷大的时候,大多数人都认为有一种永远不会结束的东西,但是我们在Python中是如何对待无穷大的呢?假设你需要在Python脚本中存储一个无穷大的数字;那么,即使你可以用多个文件来存储数字,你也可以用一个更大的数字来存储一个文件。

由于Python语言是动态的,999999999999 ,或者用多个文件存储更大的数字,都不足以在Python中定义一个无限大的数字。

在数学中,你可以使用有限的和无限的数字。Python 带来了一个特点,我们可以在一个特定的范围内定义一个有限数和一个无限数,就像在数学中一样;我们可以使用负的和正的无限数。

我们不能在其他编程语言中定义一个无限的数。在其他编程语言中,我们可以定义一个特定的数值集。

为了定义无穷大,我们可以使用float("inf") 来定义正无穷大,对于负无穷大,我们使用float("-inf") 。现在,我们来看看它在Python中是如何工作的。

假设我们在变量a 中有一个存储大数的值,要求说要检查a 变量是否比float("inf") 大。

>>> a=99999999999999999
>>> a_INF=float("inf")
>>> a_INF > a
True
>>> a_INF
inf

我们可以看到a_INF 大于a ,因为这是一个无限大的数字,所以这里有一个简单的方法来定义一个无限大的数字,不需要导入一个额外的模块。

我们还可以定义一个负的无限数。下面给出一个例子。

>>> Neg_INF=float("-inf")
>>> Neg_INF
-inf

使用Python中的数学模块定义一个无限的值

另一个定义无限数的功能是math.inf 。在math 模块中,inf 是一个变量,其中有一个无限的值。

首先,我们需要导入它,然后我们可以使用math.inf 将一个变量声明为一个无限值。让我们来看看我们如何做到这一点。

>>> import math
>>> M_INF=math.inf
>>> M_INF
inf

就像我们不用导入math 模块就可以定义正负无限一样,我们也可以用math 模块定义正负无限。让我们来看看。

>>> M_NEG_INF=-math.inf
>>> M_NEG_INF
-inf

使用Python中的Decimal() 函数定义一个无限的值

Python 中可用的第三种方法是使用decimal 模块来定义一个无穷大的数字。decimal 模块是另一个新的数据类型。

他们创建这种数据类型的原因是,浮点数并不准确。小数也是一个浮点数,但它的处理方式不同。

在导入decimal 模块的同时,我们可以使用Decimal() 函数来定义一个正的或负的无限值。

Decimal() 函数中,我们可以将Infinity 作为一个字符串值传递,但这将是针对一个正值。如果我们想定义负值,我们将包括减号,如-Infinity

让我们看看如何使用Decimal() 函数和它的语法。为了更好地理解,我们将用一小段代码创建一个例子。

首先,我们将从decimal 模块中导入Decimal 函数,这样我们就可以用一个变量在内存中存储一个无限的数字。让我们看一看。

>>> from decimal import Decimal
>>> INF_POS_VAL=Decimal('infinity')
>>> INF_Neg_VAL=Decimal('-infinity')
>>> print(INF_POS_VAL)
Infinity
>>> print(INF_Neg_VAL)
-Infinity

所以这样一来,我们就可以得到一个无限的数值,并在不同的程序中用于不同的目的。

使用Python中的NumPy模块定义一个无限的值

最后一种也是最常见的定义无限值的方法是使用numpy 模块。numpy 模块也带来了一个使用numpy.inf 定义无限值的功能。

这与math 模块的工作原理相同。只是模块的名称有所改变。

让我们看一下。

>>> import numpy
>>> Num_Pos_INF=numpy.inf
>>> Num_Neg_INF=-numpy.inf
>>> print(Num_Pos_INF)
inf
>>> print(Num_Neg_INF)
-inf

在我们处理科学计算的不同 Python 脚本中,我们需要检查一个值是否是无限的。我们可以使用Python的isinf() 方法来检查。

我们不能正常地调用它,但是我们可以在导入math 之后调用它,因为isinf()math 模块的一个函数。由于isinf() 函数返回布尔值,如真或假,我们将放一个值来确定这个值是否是无限的。

如果我们使用isinf() 函数检查一个用整数或浮点数构成的值,这个函数会返回假,因为这是一个有限的值。

>>> import math
>>> val=999999999999
>>> math.isinf(val)
False

在什么情况下会返回真呢?

当我们传递一个负的或正的无限值时,它将返回真。在这两种情况下,我们都会得到一个真值。

>>> math.isinf(-numpy.inf)
True

所以这样一来,我们可以在Python中定义更大和更小的值。更多细节,你可以访问这里。