如何在python中表示无限数?无论您在程序中输入哪个数字,任何数字都不应大于此无穷大的表示.
我一直试图找出如何表示一个最大整数,我已经阅读使用"sys.maxint".但是,在Python 3中,当我调用它时,我得到:
AttributeError: module 'object' has no attribute 'maxint'
Run Code Online (Sandbox Code Playgroud) Python 3有float('inf'),Decimal('Infinity')但没有int('inf').那么,为什么语言中缺少表示无限整数集的数字?是int('inf')不合理的?
Python 2.x允许比较异构类型.
一个有用的快捷方式(在Python 2.7中)None比较小于任何整数或浮点值:
>>> None < float('-inf') < -sys.maxint * 2l < -sys.maxint
True
Run Code Online (Sandbox Code Playgroud)
在Python 2.7中,空元组()是一个无限值:
>>> () > float('inf') > sys.maxint
True
Run Code Online (Sandbox Code Playgroud)
当人们可能对int和float的混合列表进行排序并希望具有绝对最小值和最大值时,此快捷方式非常有用.
这个快捷方式已经在Python 3000中删除了(这是Python 3.2):
>>> None < 0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unorderable types: NoneType() < int()
Run Code Online (Sandbox Code Playgroud)
此外,Python3000 已经删除 sys.maxint了理论上所有的内容促进了多头并且限制不再适用.
PEP 326,一个顶部和底部值的案例,在Python中提高了参考最小值和最大值.新的排序行为记录在案.
由于PEP 326被拒绝了,在Python 2X和Python 3000上使用整数和浮点数和长整数的最小值和最大值有用,可用的定义是什么?
编辑
有几个答案是"只使用maxv = float('inf')"......我想的原因,无论多么遥远的可能性,是这样的:
>>> float(2**5000)
Traceback (most recent call last):
File "<stdin>", line …Run Code Online (Sandbox Code Playgroud)