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