Вопрос-Ответ

Maximum and Minimum values for ints

Максимальные и минимальные значения для целых чисел

Как мне представить минимальные и максимальные значения для целых чисел в Python? В Java у нас есть Integer.MIN_VALUE и Integer.MAX_VALUE.


Смотрите также: Каково максимальное значение float в Python?.

Переведено автоматически
Ответ 1

Python 3

В Python 3 этот вопрос неприменим. Тип plain int неограничен.

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

Как правило, максимальное значение, которое может быть представлено словом без знака, будет sys.maxsize * 2 + 1, а количество битов в слове будет math.log2(sys.maxsize * 2 + 2). Смотрите Этот ответ для получения дополнительной информации.

Python 2

В Python 2 максимальное значение для простых int значений доступно как sys.maxint:

>>> sys.maxint  # on my system, 2**63-1
9223372036854775807

Вы можете вычислить минимальное значение с помощью -sys.maxint - 1 как показано в документации.

Python плавно переключается с простых чисел на длинные, как только вы превышаете это значение. Поэтому в большинстве случаев вам не нужно это знать.

Ответ 2

Если вам просто нужно число, которое больше всех остальных, вы можете использовать

float('inf')

аналогичным образом, число меньше всех остальных:

float('-inf')

Это работает как в python 2, так и в 3.

Ответ 3

sys.maxint Константа была удалена начиная с Python 3.0, вместо этого используйте sys.maxsize.


Целые числа



  • PEP 237: по сути, long переименовано в int. То есть существует только один встроенный интегральный тип с именем int; но он ведет себя в основном как старый long тип.


...



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


Ответ 4

В Python 3 для типа int нет максимального или минимального значения.

Вместо этого вас может заинтересовать sys.maxsize. Согласно документации:


sys.maxsize


Целое число, дающее максимальное значение, которое может принимать переменная типа Py_ssize_t. Обычно это 2**31 - 1 на 32-разрядной платформе и 2**63 - 1 на 64-разрядной платформе.


import sys
max_size = sys.maxsize
min_size = -sys.maxsize - 1
python