¿Cómo puedo asignar el valor máximo para un entero largo a una variable, similar, por ejemplo, para C ++ LONG_MAX.
minfunción, si realmente quieres programar en Python!)
float("inf"). O mejor, use la minfunción incorporada.
¿Cómo puedo asignar el valor máximo para un entero largo a una variable, similar, por ejemplo, para C ++ LONG_MAX.
minfunción, si realmente quieres programar en Python!)
float("inf"). O mejor, use la minfunción incorporada.
Respuestas:
No hay un límite definido explícitamente. La cantidad de espacio de direcciones disponible constituye un límite práctico.
(Tomado de este sitio). Consulte los documentos sobre tipos numéricos donde lo verá Long integers have unlimited precision. En Python 2, los enteros cambiarán automáticamente a largos cuando superen su límite:
>>> import sys
>>> type(sys.maxsize)
<type 'int'>
>>> type(sys.maxsize+1)
<type 'long'>
para enteros tenemos
El valor máximo de un int se puede encontrar en Python 2.x con sys.maxint. Se eliminó en Python 3, pero a sys.maxsizemenudo se puede usar en su lugar. Desde el registro de cambios :
Se eliminó la constante sys.maxint, ya que ya no hay un límite para el valor de los números enteros. Sin embargo, sys.maxsize se puede utilizar como un número entero más grande 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.maxint en versiones anteriores en la misma plataforma (asumiendo las mismas opciones de compilación).
y, para cualquier persona interesada en la diferencia (Python 2.x):
sys.maxint El mayor entero positivo admitido por el tipo de entero regular de Python. Esto es al menos 2 ** 31-1. El entero negativo más grande es -maxint-1 - la asimetría resulta del uso de la aritmética binaria en complemento a 2.
sys.maxsize El entero positivo más grande admitido por el tipo Py_ssize_t de la plataforma y, por lo tanto, el tamaño máximo que pueden tener las listas, cadenas, dictados y muchos otros contenedores.
y para completar, aquí está la versión de Python 3 :
sys.maxsize Un entero que da el valor máximo que puede tomar una variable de tipo Py_ssize_t. Suele ser 2 ^ 31 - 1 en una plataforma de 32 bits y 2 ^ 63 - 1 en una plataforma de 64 bits.
Hay float("inf")y float("-inf"). Estos se pueden comparar con otros tipos numéricos:
>>> import sys
>>> float("inf") > sys.maxsize
True
Python longpuede ser arbitrariamente grande. Si necesita un valor que sea mayor que cualquier otro valor, puede usarlo float('inf'), ya que Python no tiene problemas para comparar valores numéricos de diferentes tipos. De manera similar, para un valor menor que cualquier otro valor, puede usar float('-inf').
Los enteros tienen un tamaño ilimitado y no tienen un valor máximo en Python.
De acuerdo con su comentario de lo que está tratando de hacer, actualmente está pensando en algo como
minval = MAXINT;
for (i = 1; i < num_elems; i++)
if a[i] < a[i-1]
minval = a[i];
No es así como pensar en Python. Una mejor traducción a Python (pero aún no la mejor) sería
minval = a[0] # Just use the first value
for i in range(1, len(a)):
minval = min(a[i], a[i - 1])
Tenga en cuenta que lo anterior no usa MAXINT en absoluto. Esa parte de la solución se aplica a cualquier lenguaje de programación: no es necesario conocer el valor más alto posible solo para encontrar el valor más pequeño en una colección.
Pero de todos modos, lo que realmente haces en Python es solo
minval = min(a)
Es decir, no escribes un bucle en absoluto. La min()función incorporada obtiene el mínimo de toda la colección.
longtype en Python 2.x usa aritmética de precisión arbitraria y no tiene el valor máximo posible. Está limitado por la memoria disponible. Python 3.x no tiene un tipo especial para los valores que no pueden ser representados por el entero nativo de la máquina - todo es inty la conversión se maneja detrás de escena.
A diferencia de C / C ++ Long en Python tienen una precisión ilimitada. Consulte la sección Tipos numéricos en Python para obtener más información. Para determinar el valor máximo de un número entero, simplemente puede referirse sys.maxint. Puede obtener más detalles en la documentación de sys .
En python3, puede enviar el valor flotante a la función int para obtener ese número 1.7976931348623157e + 308 en representación entera.
import sys
int(sys.float_info.max)