我一直在尝试找出如何表示最大整数,并且我已经阅读过使用"sys.maxint"
. 但是,在 Python 3 中,当我调用它时,我得到:
AttributeError: module 'object' has no attribute 'maxint'
我一直在尝试找出如何表示最大整数,并且我已经阅读过使用"sys.maxint"
. 但是,在 Python 3 中,当我调用它时,我得到:
AttributeError: module 'object' has no attribute 'maxint'
sys.maxint 常量已被删除,因为整数值不再有限制。但是,sys.maxsize 可以用作大于任何实际列表或字符串索引的整数。它符合实现的“自然”整数大小,并且通常与同一平台上先前版本中的 sys.maxint 相同(假设相同的构建选项)。
正如其他人指出的那样,Python 3int
没有最大大小,但如果您只需要保证高于任何其他int
值的东西,那么您可以使用 Infinity 的浮点值,您可以使用float("inf")
.
注意:根据 ely 的评论,这可能会影响代码的效率,因此它可能不是最佳解决方案。
如果您正在寻找一个比其他所有数字都大的数字:
方法一:
float('inf')
方法二:
import sys
max = sys.maxsize
如果您正在寻找一个小于所有其他数字的数字:
方法一:
float('-inf')
方法二:
import sys
min = -sys.maxsize - 1
方法 1 适用于 Python2 和 Python3。方法 2 适用于 Python3。我没有在 Python2 中尝试过方法 2。
Python 3 整数没有最大值。
如果您的目的是确定在 C 中以与 Python 相同的方式编译时 int 的最大大小,您可以使用 struct 模块来找出:
>>> import struct
>>> platform_c_maxint = 2 ** (struct.Struct('i').size * 8 - 1) - 1
如果您对 Python 3 int 对象的内部实现细节感到好奇,请查看sys.int_info
每位数的位数和位数大小的详细信息。没有正常的程序应该关心这些。
Python 3.0 不再具有 sys.maxint ,因为 Python 3 的整数是任意长度的。而不是 sys.maxint 它有 sys.maxsize; 正尺寸 size_t aka Py_ssize_t 的最大尺寸。
另一种选择是
import math
... math.inf ...