En Python, ¿hay alguna manera de obtener el entero más grande que se pueda usar? ¿Hay alguna constante predefinida como INT_MAX?Rangos enteros de Python
63
A
Respuesta
114
Python tiene enteros de precisión arbitrarios, por lo que no existe un verdadero máximo fijo. Solo está limitado por la memoria disponible.
En Python 2, hay dos tipos, int
y long
. int
s usan un tipo C, mientras que long
s son de precisión arbitraria. Puede usar sys.maxint
para encontrar el máximo de int
. Pero int
s automáticamente se transfieren a long
, por lo que normalmente no es necesario preocuparse por ello:
sys.maxint + 1
funciona bien y devuelve un long
.
sys.maxint
ni siquiera existe en Python 3, ya que int
y long
se unificaron en un solo tipo de precisión arbitraria int
.
0
import re
import sys
import platform
import struct
formats = {
"int":{"p_type":"integer", "format":"i"},
"float":{"p_type":"float", "format":"f"},
"double":{"p_type":"float", "format":"d"}
}
sys_bit = int(re.findall(r"\d+", platform.architecture()[0])[0])/8
for k,v in formats.iteritems():
print "max {0} {1}".format(k, 2**struct.Struct(v["format"]).size*sys_bit-1)-1)
print "min {0} {1}".format(k, -2**struct.Struct(v["format"]).size*sys_bit-1))
Cuestiones relacionadas
- 1. Extraer enteros de rangos
- 2. Definir rangos enteros en C
- 3. Conversión de conjuntos de enteros en rangos
- 4. Declaración de caso Delphi para rangos enteros
- 5. Conversión de conjuntos de enteros en rangos utilizando C#
- 6. Generación de rangos de color en Python
- 7. Endianness de enteros en Python
- 8. Rangos de direcciones IPv6
- 9. Contando duplicados enteros en Python
- 10. Fusionar dos enteros en Python
- 11. Manera pitónica de convertir una lista de enteros en una cadena de rangos separados por comas
- 12. ¿Cómo resumo una matriz de enteros como una matriz de rangos?
- 13. Parse rangos de fechas de formato humana en Python
- 14. Crear lista aleatoria de enteros en Python
- 15. suma de python() y valores no enteros
- 16. Encontrar rangos contiguos en matrices
- 17. Cómo convertir cadenas en enteros en Python?
- 18. Cómo probar la equivalencia de rangos
- 19. sql - agrupe por en rangos para incluir rangos sin valores
- 20. Fusionando una lista de tuplas de rangos de tiempo que tienen rangos de tiempo superpuestos
- 21. Rangos de búsqueda de Solr
- 22. Comparación de rangos de fechas
- 23. python error "los índices de lista deben ser enteros", son enteros
- 24. Consolidar IPs en rangos de pitón
- 25. Sumar rangos consecutivos Pythonically
- 26. PHP Generar Rangos IP
- 27. rangos de direcciones IP privadas
- 28. Disminución de rangos en Haskell
- 29. Lista de enteros en cadena (matriz de bytes) - python
- 30. Recepción de enteros de 16 bits en Python
Tenga en cuenta que en Python 3 (y Python 2.6 y superior) 'sys.maxsize' se puede usar cuando necesita un valor arbitrariamente grande. – mattdm
¿hay uno que no sea largo? –
'sys.maxsize' sigue siendo el límite teórico sobre el tamaño de los contenedores para python 2 y 3 (teórica porque la memoria es el factor limitante real) –