Что такое sys.maxint в Python 3? - программирование
Подтвердить что ты не робот

Что такое sys.maxint в Python 3?

Я пытаюсь выяснить, как представить максимальное целое число, и я читал использовать "sys.maxint". Однако в Python 3, когда я это называю, я получаю:

AttributeError: module 'object' has no attribute 'maxint'
4b9b3361

Ответ 1

Константа sys.maxint была удалена, так как больше нет предела к значению целых чисел. Однако sys.maxsize можно использовать как целое больше, чем любой практический список или индекс строки. Он соответствует реализаций "натуральный" целочисленный размер и, как правило, один и тот же как sys.maxint в предыдущих выпусках на той же платформе (при условии, что те же варианты сборки).

http://docs.python.org/3.1/whatsnew/3.0.html#integers

Ответ 2

Как указано другими, Python 3 int не имеет максимального размера, но если вам просто нужно что-то, что гарантировано выше любого другого значения int, то вы можете использовать значение float для Infinity, который вы можете получить с помощью float("inf").

Ответ 3

У Python 3 ints нет максимума.

Если ваша цель - определить максимальный размер int в C при компиляции таким же образом, как и Python, вы можете использовать модуль struct, чтобы узнать:

>>> import struct
>>> platform_c_maxint = 2 ** (struct.Struct('i').size * 8 - 1) - 1

Если вам интересно узнать внутренние детали реализации объектов Python 3 int, посмотрите sys.int_info для битов на цифры и цифры размера цифры. Никакая нормальная программа не должна заботиться об этом.

Ответ 4

Python 3 не имеет ограничения на int. но вы можете использовать sys.maxsize как целое число, большее, чем любой практический список или индекс строки.

Ответ 5

Если вы ищете число больше, чем все остальные:

Метод 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.

Ответ 6

У Python 3.0 больше нет sys.maxint, поскольку Python 3 ints имеют произвольную длину. Вместо sys.maxint он имеет sys.maxsize; максимальный размер положительного размера size_t aka Py_ssize_t.

Ответ 7

Python3 не поддерживает sys.maxint, вместо этого вы можете использовать:

sys.maxsize

Ответ 8

n = len(items); minima = [sys.maxint for я in range(n)]; maxima = [-sys.maxint -1 for я in range(n)];