Я пытался выяснить, как представить максимальное целое число, и я прочитал, чтобы использовать "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 3 int
не имеет максимального размера, но если вам просто нужно что-то, что гарантированно будет выше, чем любое другое int
значение, тогда вы можете использовать значение с плавающей запятой для Infinity, которое вы можете получить float("inf")
.
Python 3 дюйма не имеют максимума.
Если ваша цель - определить максимальный размер int в C при компиляции таким же образом, как и в Python, вы можете использовать модуль struct, чтобы узнать:
>>> import struct
>>> platform_c_maxint = 2 ** (struct.Struct('i').size * 8 - 1) - 1
Если вам интересно узнать о внутренних деталях реализации int-объектов Python 3, обратите внимание на 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. Я не пробовал метод 2 в Python2.
В Python 3.0 больше нет sys.maxint, поскольку целые числа Python 3 имеют произвольную длину. Вместо sys.maxint он имеет sys.maxsize; максимальный размер положительного размера size_t aka Py_ssize_t.
Альтернатива
import math
... math.inf ...