无穷大是一个用来描述不可数的大小、寿命和编程语言的术语。编程语言提供从简单到复杂的数据结构,以表示整数、十进制、浮点、双精度、正数、负数等数字,但无穷大或无穷大是一种特例。在本教程中,我们将通过询问如何创建、定义、比较和计算无限变量来研究Python编程语言的无限数和无穷数。
什么是无穷大?
当我们谈论数字时,我们知道所有的数字都是精确可数的,并且很容易用1,2,3,10.5等数字来表示。但是无限数不同于所有其他数字,不能根据它的定义来计算。无穷大或无限数只能表示,不能像数学运算中的正则数那样计数或使用。正数和负数一样,正无穷远低于所有可数,正无穷远高于所有可数。负无穷大用-∞ 正无穷大用+∞.
用Python表示无穷大
作为一种流行的动态编程语言,Python提供了不同的方法来定义和使用无限值和变量,甚至术语infinity似乎也有点难以定义。下面您可以找到在Python中定义无限的方法。无穷大是用 IEEE-754-1985 大多数现代编程语言都提供了标准的。根据该标准,无穷大或无穷大的数据或变量类型应为浮点型。
- 用浮点数表示无穷大
- 用小数表示无穷大
- 用math.inf表示无穷大
- 用NumPy表示无穷大
- 用SumPy表示无穷大
- 用Kvesteri无穷大类表示无穷大
使用float()函数创建无限变量/值
可以使用float数据类型定义和表示正无穷数和负无穷数或无穷大。我们只使用 float()函数 并提供定义字符串 中导 正无穷大和 -中导 为负无穷大。
# positive infinity
positive_inf = float("inf")
# negative infinity
negative_inf = float("-inf")
print(positive_inf)
# inf
print(negative_inf)
# -inf
print(type(positive_inf))
![图片[1]-Python无穷(Infinite Number)教程-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2020/08/wisetut_image-48.png)
创建带小数的无限变量/值
在Python中,创建或表示正负无限的另一种数据类型是decimal。无穷大的创建与十进制类型的浮点类型非常相似。我们将提供 无穷 正无穷大和 -无限 为负无穷大。为了使用Decimal类型,应该从 十进制模块 就像下面一样。
from decimal import Decimal
positive_infinity = Decimal("Infinity")
negative_infinity = Decimal("-Infinity")
print(positive_infinity)
# The output is "Infinity
"print(negative_infinity)
# The output is "-Infinity"type(positive_infinity)
# The output is "<class 'decimal.Decimal'>"
![图片[2]-Python无穷(Infinite Number)教程-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2020/08/wisetut_image-49.png)
使用math.inf创建无限变量/值
Python为高级数学计算和定义提供了数学模块。Infinity也由Python数学模块提供。正无穷大和负无穷大都可以用数学模型来表示 数学.inf 和 -数学.inf . 但是为了使用数学模块无穷大,您应该导入 数学模块 就像下面一样。
import math
positive_infinity = math.inf
negative_infinity = -math.inf
print(positive_infinity)
# The output is "inf"
print(negative_infinity)
# The output is "-inf"
type(positive_infinity)
# The output is "<class 'float'>"
type(negative_infinity)
# The output is "<class 'float'>"
你可以从照片上看到 类型() 函数输出math.inf与float类型infinity相同并从中派生。
使用NumPy创建无限变量/值
NumPy是一个流行的Python模块,它提供了处理数字的广泛功能。作为一个数字,无穷大可以用NumPy模块来表示和创建。NumPy为正无穷大提供 numpy.inf文件 负无穷大 -numpy.inf文件 . NumPy是由第三方软件包provide-PyPy提供的一个外部模块。默认情况下不安装它,但可以使用下面的包管理或pip命令轻松安装。
$ pip3 install numpy
现在你可以用正无穷大和负无穷大来表示NumPy。
import numpy
positive_infinity = numpy.inf
negative_infinity = -numpy.inf
print(positive_infinity)
#The output is "inf"
print(negative_infinity)
#The output is "-inf"
type(positive_infinity)
#The output is "<class 'float'>"
type(negative_infinity)
#The output is "<class 'float'>"
![图片[3]-Python无穷(Infinite Number)教程-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2020/08/wisetut_image-50.png)
检查是无穷大还是无穷大
Python数学模块提供 isinf() 函数来检查给定的值、变量或数字(如果它是无限的)。它将检查给定的数字是否为正或负无穷大,如果为负或正无穷大则返回true。应该为此操作导入数学模块。
import math
a = float("inf")
b = float("-inf")
c = 99999999
d = -9999999999
print(math.isinf(a))
#The output is "True"
print(math.isinf(b))
#The output is "True"
print(math.isinf(c))
#The output is "False"
print(math.isinf(d))
#The output is "False"
![图片[4]-Python无穷(Infinite Number)教程-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2020/08/wisetut_image-51.png)
比较不同的无限值表示
让我们使用if-else条件来比较不同的无穷多个表示形式。我们将用不同的方法创建无限变量,并相互比较。
import math
import decimal
a = float("inf")
b = decimal.Decimal("Infinity")
c = math.inf
print(a==b)
#The out is "True"
print(a==c)
#The out is "True"
print(b==c)
#The out is "True"
![图片[5]-Python无穷(Infinite Number)教程-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2020/08/wisetut_image-52.png)
无限值计算
具有无穷大或无穷大值的计算是以数学理论为基础的。简单地说,当我们用5个结果求和无穷大时,结果就是无穷大。我们可以用无穷多的数字进行大多数的数学计算。让我们看看这些例子。
import math
a = float("inf")
b = float("inf")
c = float("-inf")
print(a+5 == b)
# True
print(a-5 == b)
# True
print(a == c)
# False
print(a > c)
# True
print(a/b)
# nan
print(a/c)
# nan
print(a*b)
# inf
print(a*b == b)
# True
![图片[6]-Python无穷(Infinite Number)教程-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2020/08/wisetut_image-53.png)
使用For和While循环迭代到无穷大
无限表示不可接近,但我们可以迭代到无限。这也称为无限循环。使用 for循环 不能迭代到无穷大,因为迭代使用整数类型,但无穷大类型是float。即使尝试不同的方法,也没有可行的方法来迭代for循环。如果尝试使用for来迭代无穷大,将出现以下错误。
for x in range(0,int(math.inf)):
print("I go to the infinite...")
#Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
#OverflowError: cannot convert float infinity to integer
for x in range(0,math.inf):
print("I go to the infinite...")
#Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
#TypeError: 'float' object cannot be interpreted as an integer
![图片[7]-Python无穷(Infinite Number)教程-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2020/08/wisetut_image-55.png)
你可以用 while循环 为了迭代到无穷大,因为我们只需将给定的有限数与无穷大数进行比较,然后迭代到下一步,除非我们取消这个过程,否则下一步将无限期地继续。
x = 0
while x < math.inf:
print("I go to the infinite...")
![图片[8]-Python无穷(Infinite Number)教程-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2020/08/wisetut_image-54.png)
无限vs楠
NaN或NaN是Python中类似float、int、list等的数据类型。创建NaN只是为了不存储任何内容和值。在某些情况下,它可能会与无限数混淆,但它们是完全不同的。Infinity或infinite number是可以计数的浮点型数字,但NaN不是数据或空类型。所以它们不一样,比较无限数和Nan类型将返回一个假值。例如,我们可以用一个无穷大的数来进行可数的while迭代,但是不能用NaN来进行可数的迭代。
import math
print(math.inf == math.nan)
#The output is "False"print(math.inf != math.nan)
#The output is "True"