整数的最大值和最小值
在Python中,如何表示整数的最小值和最大值呢?在Java里,我们有 Integer.MIN_VALUE
和 Integer.MAX_VALUE
这样的表示方式。
另外可以参考: Python中的最大浮点数是多少?.
12 个回答
315
从Python 3.0开始,sys.maxint
这个常量被去掉了,取而代之的是sys.maxsize
。
整数
...
sys.maxint
这个常量被去掉了,因为现在整数的值没有限制了。不过,你可以使用sys.maxsize
,它可以作为一个比任何实际的列表或字符串索引都大的整数。它符合实现的“自然”整数大小,通常在同一平台的早期版本中和sys.maxint
是一样的(假设使用了相同的构建选项)。
515
如果你只需要一个比其他所有数字都大的数字,可以使用:
float('inf')
类似地,如果你需要一个比所有其他数字都小的数字,可以使用:
float('-inf')
这个方法在Python 2和Python 3中都可以用。
1293
Python 3
在Python 3中,这个问题不适用。普通的 int
类型是没有上限的。
不过,你可能想了解的是当前解释器的 字大小,通常这个字大小和机器的字大小是一样的。在Python 3中,这个信息可以通过 sys.maxsize
获取,它代表一个有符号字能表示的最大值。换句话说,它就是可以创建的最大列表或内存序列的大小。
一般来说,一个无符号字能表示的最大值是 sys.maxsize * 2 + 1
,而一个字的位数可以用 math.log2(sys.maxsize * 2 + 2)
计算出来。想了解更多信息,可以查看 这个回答。
Python 2
在Python 2中,普通的 int
类型的最大值可以通过 sys.maxint
获取:
>>> sys.maxint # on my system, 2**63-1
9223372036854775807
你可以用 -sys.maxint - 1
来计算最小值,具体可以参考 文档。
一旦超过这个值,Python会自动从普通整数切换到长整数。所以大多数情况下,你不需要知道这个值。