Python 3有float('inf'),Decimal('Infinity')但没有int('inf').那么,为什么语言中缺少表示无限整数集的数字?是int('inf')不合理的?
我正在尝试在Haskell中使用Maybe类型.我查找了返回Maybe的键值元组.如何访问由Maybe包装的数据?例如,我想将Maybe包含的整数与另一个整数相加.
我正在尝试实现一个数据结构,如果我使用无穷大进行数字比较,那就简单了.请注意,这不是maxBound/minBound,因为值可以<= maxbound,但所有值都是<infinity.
没希望?
我需要一种方法来表示一个可以是无限的整数.我不想使用浮点类型(double.PositiveInfinity),因为数字永远不会是小数,这可能会使API混乱.做这个的最好方式是什么?
编辑:我还没有看到的一个想法是使用int?null表示无穷大.有没有充分的理由不这样做?
我正在做一些实验,并且正在尝试这样做:
import math
for i in range(math.inf):
print(i)
Run Code Online (Sandbox Code Playgroud)
我希望它与此完全相同:
c = 0
while True:
print(c)
c += 1
Run Code Online (Sandbox Code Playgroud)
但它更像这样
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'float' object cannot be interpreted as an integer
Run Code Online (Sandbox Code Playgroud)
然后,我尝试将转换inf为浮点数:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'float' object cannot be interpreted as an integer
Run Code Online (Sandbox Code Playgroud)
但这给了我这个错误,表明您不能将float infinity转换为整数。
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OverflowError: cannot convert float infinity …Run Code Online (Sandbox Code Playgroud)