Valores máximos y mínimos para enteros

Resuelto bdhar asked hace 13 años • 12 respuestas

¿Cómo represento valores mínimos y máximos para números enteros en Python? En Java tenemos Integer.MIN_VALUEy Integer.MAX_VALUE.


Ver también: ¿ Cuál es la flotación máxima en Python? .

bdhar avatar Sep 30 '11 08:09 bdhar
Aceptado

Pitón 3

En Python 3, esta pregunta no se aplica. El tipo simple intno 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 + 1y 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 intvalores simples está disponible como sys.maxint:

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

Puede calcular el valor mínimo -sys.maxint - 1como 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.

senderle avatar Sep 30 '2011 01:09 senderle

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.

Melle avatar May 18 '2016 12:05 Melle

La sys.maxintconstante se eliminó desde Python 3.0 en adelante ; en su lugar, use sys.maxsize.

Enteros

  • PEP 237 : Básicamente,longrenombrado aint. Es decir, sólo hay un tipo integral incorporado, denominadoint; pero se comporta mayoritariamente como ellongtipo antiguo.

...

  • La sys.maxintconstante se eliminó porque ya no hay límite para el valor de los números enteros. Sin embargo, sys.maxsizese 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 que sys.maxinten versiones anteriores en la misma plataforma (asumiendo las mismas opciones de compilación).
Akash Rana avatar Sep 30 '2014 13:09 Akash Rana

Para Python 3, no existe un valor máximo ni mínimo para el inttipo.

Quizás te interese en sys.maxsizesu lugar. Según la documentación:

sys.maxsize

Un número entero que proporciona el valor máximo Py_ssize_tque puede tomar una variable de tipo. Generalmente está 2**31 - 1en una plataforma de 32 bits y 2**63 - 1en una plataforma de 64 bits.

import sys
max_size = sys.maxsize
min_size = -sys.maxsize - 1
netskink avatar Mar 02 '2017 00:03 netskink