Valores máximos y mínimos para enteros
¿Cómo represento valores mínimos y máximos para números enteros en Python? En Java tenemos Integer.MIN_VALUE
y Integer.MAX_VALUE
.
Ver también: ¿ Cuál es la flotación máxima en Python? .
Pitón 3
En Python 3, esta pregunta no se aplica. El tipo simple int
no tiene límites.
Sin embargo, es posible que en realidad esté buscando información sobre el tamaño de palabra del intérprete actual , que será el mismo que el tamaño de palabra de la máquina en la mayoría de los casos. Esa información todavía está disponible en Python 3 como sys.maxsize
, que es el valor máximo representable por una palabra con signo. De manera equivalente, es el tamaño de la lista o secuencia en memoria más grande posible.
Generalmente, el valor máximo representable por una palabra sin signo será sys.maxsize * 2 + 1
y el número de bits de una palabra será math.log2(sys.maxsize * 2 + 2)
. Consulte esta respuesta para obtener más información.
Pitón 2
En Python 2, el valor máximo para int
valores simples está disponible como sys.maxint
:
>>> sys.maxint # on my system, 2**63-1
9223372036854775807
Puede calcular el valor mínimo -sys.maxint - 1
como se muestra en los documentos .
Python cambia sin problemas de enteros simples a largos una vez que se excede este valor. Así que la mayoría de las veces no necesitarás saberlo.
Si solo necesita un número que sea mayor que todos los demás, puede usar
float('inf')
de manera similar, un número menor que todos los demás:
float('-inf')
Esto funciona tanto en Python 2 como en Python 3.
La sys.maxint
constante se eliminó desde Python 3.0 en adelante ; en su lugar, use sys.maxsize
.
Enteros
- PEP 237 : Básicamente,
long
renombrado aint
. Es decir, sólo hay un tipo integral incorporado, denominadoint
; pero se comporta mayoritariamente como ellong
tipo antiguo....
- La
sys.maxint
constante se eliminó porque ya no hay límite para el valor de los números enteros. Sin embargo,sys.maxsize
se puede utilizar como un número entero mayor que cualquier lista práctica o índice de cadena. Se ajusta al tamaño entero "natural" de la implementación y normalmente es el mismo quesys.maxint
en versiones anteriores en la misma plataforma (asumiendo las mismas opciones de compilación).
Para Python 3, no existe un valor máximo ni mínimo para el int
tipo.
Quizás te interese en sys.maxsize
su lugar. Según la documentación:
sys.maxsize
Un número entero que proporciona el valor máximo
Py_ssize_t
que puede tomar una variable de tipo. Generalmente está2**31 - 1
en una plataforma de 32 bits y2**63 - 1
en una plataforma de 64 bits.
import sys
max_size = sys.maxsize
min_size = -sys.maxsize - 1