[英]How can I represent an infinite number in Python?
如何在 python 中表示无限数? 无论您在程序中输入哪个数字,任何数字都不应大于此表示的无穷大。
在 Python 中,您可以执行以下操作:
test = float("inf")
在 Python 3.5 中,您可以执行以下操作:
import math
test = math.inf
进而:
test > 1
test > 10000
test > x
永远是真的。 除非当然,正如所指出的,x 也是无穷大或“nan”(“不是数字”)。
此外(仅限 Python 2.x),与Ellipsis
相比, float(inf)
较小,例如:
float('inf') < Ellipsis
会返回true。
从 Python 3.5 开始,您可以使用math.inf
:
>>> import math
>>> math.inf
inf
似乎没有人明确提到负无穷大,所以我想我应该添加它。
对于负无穷:
-math.inf
对于正无穷大(只是为了完整性):
math.inf
我不知道你在做什么,但float("inf")
给你一个浮点无穷大,它比任何其他数字都大。
NumPy 库中有一个无穷大: from numpy import inf
。 要获得负无穷大,可以简单地编写-inf
。
另一种不太方便的方法是使用Decimal
类:
from decimal import Decimal
pos_inf = Decimal('Infinity')
neg_inf = Decimal('-Infinity')
在 python2.x 中有一个用于此目的的脏黑客(除非绝对必要,否则不要使用它):
None < any integer < any string
因此,检查i < ''
保持True
为任何整数i
。
它在 python3 中已被合理弃用。 现在这样的比较以
TypeError: unorderable types: str() < int()
此外,如果您使用 SymPy,则可以使用sympy.oo
>>> from sympy import oo
>>> oo + 1
oo
>>> oo - oo
nan
等等。
对于正无穷大
pos_inf_val = float("infinity")
对于负无穷大
neg_inf_val = float("-infinity")
在python
中表示∞
float("inf")
或float("INF")
或float("Inf")
或float("inF")
或float("infinity")
或float("Infinity")
创建一个float
object 持有∞
您也可以在python
中表示-∞
float("-inf")
或float("-INF")
或float("-Inf")
或float("-infinity")
创建一个浮动 object 持有-∞
您可以执行算术运算:
infinity = float("inf")
ninfinity = float("-inf")
nan = float("nan")
print(infinity*infinity)#inf
print(ninfinity+infinity)#not a number
print(1/-infinity)#is -0.0
print(nan*nan)# is not a number
print(1/infinity) # is 0.0 since 1/∞ is 0
$ python3 floating.py
inf
nan
-0.0
nan
0.0
总之,Infinity 有两种定义。
对于正无穷大
posVal1 = math.inf
posVal2 = float("inf")
对于负无穷大
negVal1 = -math.inf
negVal2 = float("-inf")
float('inf')
和float('-inf)
positive_infinity = float('inf') # inf
negative_infinity = float('-inf') # -inf
import math
positive_infinity = math.inf # inf
negative_infinity = -math.inf # -inf
maxsize
尺寸import sys
maxSize = sys.maxsize # 9223372036854775807
minSize = -sys.maxsize # -9223372036854775807
from decimal import Decimal
positive_infinity = Decimal('Infinity') # Infinity
negative_infinity = Decimal('-Infinity') # -Infinity
首先,虽然float('inf')类型可用于比较目的,但它是float类型,但与之比较却相当慢。 因此,如果将大量数字与float('inf')进行比较,则请小心选择它。 我不确定“ math.inf”的性能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.