问题:Python 3中的sys.maxint是什么?
我一直在尝试找出如何表示最大整数,并且已经阅读过使用"sys.maxint"
。但是,在Python 3中,当我调用它时,会得到:
AttributeError: module 'object' has no attribute 'maxint'
回答 0
sys.maxint常量已删除,因为整数值不再受限制。但是,sys.maxsize可以用作大于任何实际列表或字符串索引的整数。它符合实现的“自然”整数大小,并且通常与同一平台上的先前版本中的sys.maxint相同(假定具有相同的生成选项)。
回答 1
正如其他人指出的那样,Python 3 int
没有最大大小,但是如果您只需要保证比其他任何int
值都高的值,则可以将Infinity的float值使用float("inf")
。
回答 2
Python 3 int没有最大值。
如果您的目的是在以与Python相同的方式确定C语言中int的最大大小,则可以使用struct模块找出:
>>> import struct
>>> platform_c_maxint = 2 ** (struct.Struct('i').size * 8 - 1) - 1
如果您对Python 3 int对象的内部实现细节感到好奇,请查看sys.int_info
每位位数和位数大小的详细信息。没有正常的程序应该关心这些。
回答 3
如果您要查找的数字大于所有其他数字:
方法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。
回答 4
由于Python 3的int具有任意长度,因此Python 3.0不再具有sys.maxint。它具有sys.maxsize而不是sys.maxint;正数size_t或Py_ssize_t的最大大小。
回答 5
另一种方法是
import math
... math.inf ...