Car*_*res 53 python math infinity python-3.x
Python 3有float('inf'),Decimal('Infinity')但没有int('inf').那么,为什么语言中缺少表示无限整数集的数字?是int('inf')不合理的?
Sør*_*sen 11
取自此处:https://www.gnu.org/software/libc/manual/html_node/Infinity-and-NaN.html
IEEE 754浮点数可以表示正或负无穷大,NaN(不是数字)
也就是说,表示float并Decimal可以存储这些特殊值.但是,基本类型int中没有任何内容可以存储相同的内容.当你在无符号的32位int中超过2 ^ 32的限制时,你只需再次翻转为0.
如果需要,可以创建一个包含整数的类,该整数可能具有无限值的可能性.
没错,整数无穷大是可能的,并且没有将其添加到Python标准中。这可能是因为math.inf几乎在所有情况下都可以取代它(如Martijn在他的评论中所述)。
同时,我在PyPI上添加了扩展整数的实现:
In [0]: from numbers import Integral, Real
In [0]: from extended_int import int_inf, ExtendedIntegral, Infinite
In [0]: i = int_inf
In [4]: float(i)
Out[4]: inf
In [5]: print(i)
inf
In [6]: i ** i
Out[6]: inf
In [7]: i
Out[7]: inf
In [9]: isinstance(i, Real)
Out[9]: True
In [10]: isinstance(i, Integral)
Out[10]: False
In [11]: isinstance(i, Infinite)
Out[11]: True
In [12]: isinstance(i, ExtendedIntegral)
Out[12]: True
In [13]: isinstance(2, ExtendedIntegral)
Out[13]: True
In [14]: isinstance(2, Infinite)
Out[14]: False
Run Code Online (Sandbox Code Playgroud)
小智 5
对于python 2。有时您需要一个非常大的整数。例如,我可能想用 x[:n] 生成一个子数组,有时我可能希望将 n 设置为一个值,以便生成整个数组。由于您不能对 n 使用浮点数(python 需要一个整数),因此您需要一个“大整数”。这样做的一个好方法是使用可用的最大整数:sys.maxint。下面是一个例子:
# MAX_SOURCES = sys.maxint # normal setting
MAX_SOURCES = 5 # while testing
# code to use an array ...
... sources[:MAX_SOURCES]
Run Code Online (Sandbox Code Playgroud)
因此,在测试时,我可以使用较小的源数组,但在生产中使用完整的数组。
| 归档时间: |
|
| 查看次数: |
67650 次 |
| 最近记录: |