Estoy buscando los valores mínimos y máximos de los enteros en python. Por ejemplo, en Java, tenemos Integer.MIN_VALUE
y Integer.MAX_VALUE
. ¿Existe algo así en python?
En Python 3, esta pregunta no se aplica. El tipo int
es ilimitado.
Sin embargo, podrías estar buscando el [tamaño de la palabra] de la máquina (http://en.wikipedia.org/wiki/Word_(arquitectura del ordenador)#Tabla_de_tamaños_de_palabra). Esto todavía está disponible en Python 3 como sys.maxsize
.
En Python 2, el valor máximo para los valores int
planos está disponible como sys.maxint
:
>>> sys.maxint
9223372036854775807
Puedes calcular el valor mínimo con -sys.maxint - 1
como se muestra aquí.
Python cambia sin problemas de enteros planos a enteros largos una vez que se supera este valor. Así que la mayoría de las veces, no necesitarás saberlo.
La constante sys.maxint ha sido eliminada a partir de Python 3.0, en su lugar utiliza sys.maxsize
Enteros
PEP 237: Esencialmente, long renombrado a int. Es decir, sólo hay un tipo integral incorporado, llamado int; pero se comporta mayormente como el antiguo tipo long. PEP 238: Una expresión como 1/2 devuelve un float. Use 1//2 para obtener el comportamiento de truncamiento. (Esta última sintaxis ha existido durante años, al menos desde al menos desde Python 2.2.)
- Se ha eliminado la constante sys.maxint, puesto que ya no existe un límite para el valor de los enteros. Sin embargo, sys.maxsize puede ser usado como un entero más grande que cualquier índice práctico de lista o cadena. Se ajusta a el tamaño entero "natural" de la implementación y es típicamente el mismo que sys.maxint en versiones anteriores en la misma plataforma (asumiendo las mismas opciones de compilación). La función repr() de un entero largo ya no incluye la L final, por lo que el código que elimina incondicionalmente ese carácter cortará el último dígito en su lugar. último dígito en su lugar. (Utilice str() en su lugar). Los literales octales ya no tienen la forma 0720; utilice 0o720 en su lugar.
Consulte : https://docs.python.org/3/whatsnew/3.0.html
En Python los enteros cambiarán automáticamente de una representación int
de tamaño fijo a una representación de ancho variable long
una vez que pases el valor sys.maxint
, que es o bien 231 - 1 o 263 - 1 dependiendo de tu plataforma. Fíjate en la "L" que se añade aquí:
>>> 9223372036854775807
9223372036854775807
>>> 9223372036854775808
9223372036854775808L
Del manual de Python:
Los números se crean mediante literales numéricos o como resultado de funciones y operadores incorporados. Los literales enteros sin adornos (incluyendo números binarios, hexadecimales y octales) producen enteros planos a menos que el valor que denotan sea demasiado grande para ser representado como un entero plano, en cuyo caso producen un entero largo. Los literales enteros con un sufijo "L" o "l" producen enteros largos (se prefiere "L" porque "1l" se parece demasiado al once).
Python se esfuerza por fingir que sus enteros son enteros matemáticos y no tienen límite. Puede, por ejemplo, calcular un googol con facilidad:
>>> 10**100
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000L