Максимальное и минимальное значения для ints

Я Integer.MIN_VALUE для получения минимальных и максимальных значений для Integer.MAX_VALUEegers в python. Например, на Java мы имеем intи sys.maxsize. Есть что-то подобное в python?

python,integer,

464

Ответов: 6


530 принят

Python 3

В Python 3 этот вопрос не применяется. Обычный intтип неограничен.

Однако на самом деле вы можете искать размер слова машины . Это все еще доступно в Python 3 как sys.maxint.

Python 2

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

float('inf')

Вы можете рассчитать минимальное значение, как показано здесь .float('-inf')

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


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

Целые

  • PEP 237: По существу, долго переименовывается в int. То есть существует только один встроенный интегральный тип с именем int; но он ведет себя в основном как старый длинный тип.
  • PEP 238: выражение типа 1/2 возвращает float. Используйте 1 // 2, чтобы получить усечение. (Последний синтаксис существует в течение многих лет, по крайней мере с Python 2.2.)
  • Константа sys.maxint была удалена, так как больше нет предела значению целых чисел. Однако sys.maxsize может использоваться как целое число, большее любого практического списка или индекса строки. Он соответствует реализации «естественный»? целочисленный размер и, как правило, такой же, как sys.maxint в предыдущих выпусках на той же платформе (при одинаковых настройках сборки).
  • Функция repr () длинного целого не включает в себя трейлинг-L больше, поэтому код, который безоговорочно разделяет этот символ, вместо этого отменяет последнюю цифру. (Вместо этого используйте str ().)
  • Октальные литералы больше не имеют формы 0720; вместо этого используйте 0o720.

См. Https://docs.python.org/3/whatsnew/3.0.html.


114

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

sys.maxint

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

L

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


70

В Python целые числа автоматически переключаются с представления фиксированного размера на intпредставление ширины переменной, как longтолько вы передадите значение sys.maxint, которое равно 2 31 - 1 или 2 63 - 1 в зависимости от вашей платформы. Обратите внимание, что Lэто добавляется здесь:

>>> 9223372036854775807
9223372036854775807
>>> 9223372036854775808
9223372036854775808L

Из руководства Python :

Числа создаются числовыми литералами или как результат встроенных функций и операторов. Необжитые целочисленные литералы (включая двоичные, шестнадцатеричные и восьмеричные числа) дают простые целые числа, если только они не обозначают слишком большое значение, чтобы быть представлены как простое целое число, и в этом случае они дают длинное целое число. Целочисленные литералы с 'L'или 'l'суффикс дают длинные целые числа ( 'L'это предпочтительнее, потому что 1lвыглядит слишком много, как одиннадцать!).

Python очень сильно пытается притвориться, что его целые числа являются математическими целыми числами и неограничены. Он может, например, легко вычислить googol :

>>> 10**100
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000L

17

Для Python 3 это

import sys
max = sys.maxsize
min = -sys.maxsize -1
Python, целое число,
Похожие вопросы