Python OverflowError: Python Int demasiado grande para convertir a C Long

Manav Narula 21 junio 2023
  1. el OverflowError: Python int demasiado grande para convertir a C largo en Python
  2. Solucione el OverflowError: Python int demasiado grande para convertir a C long en Python
Python OverflowError: Python Int demasiado grande para convertir a C Long

Este tutorial demostrará el error OverflowError: python int too large to convert to c long en Python.

el OverflowError: Python int demasiado grande para convertir a C largo en Python

Se genera un OverflowError en Python cuando un resultado aritmético excede el límite dado del tipo de datos. Encontramos este error especificado porque intentamos operar con un valor de número entero mayor que el rango dado.

Código:

import numpy as np

arr = np.zeros((1, 2), dtype=int)
a = [6580225610007]
arr[0] = a

Producción :

OverflowError: Python int too large to convert to C long

El ejemplo anterior crea una matriz de tipo int. Intentamos almacenar una lista que contenga un número entero mayor que el rango de tipo int.

El tamaño máximo también se puede comprobar mediante una constante de la biblioteca sys. Esta constante está disponible como sys.maxsize.

Solucione el OverflowError: Python int demasiado grande para convertir a C long en Python

Para evitar este error, debemos tener en cuenta el rango máximo que podemos usar con el tipo int. Existe una solución, especialmente en este ejemplo con respecto a una matriz numpy.

El tipo int era igual al tipo long int del lenguaje C y se cambió en Python 3, y el tipo int se convirtió en un tipo de precisión arbitraria.

Sin embargo, la biblioteca numpy todavía lo usa como se declara en Python 2. El long int generalmente depende de la plataforma, pero para Windows, siempre es de 32 bits.

Para corregir este error, podemos usar otros tipos que no dependen de la plataforma. La alternativa más común es el tipo np.int64, y lo especificamos en la matriz con el parámetro dtype.

Código:

import numpy as np

arr = np.zeros((1, 2), dtype=np.int64)
a = [6580225610007]
arr[0] = a
print(arr)

Producción :

[[6580225610007 6580225610007]]

El ejemplo anterior muestra que el error se resuelve utilizando el tipo alternativo.

Otra forma puede ser usar un bloque try y except. Estos dos bloques se utilizan para evitar excepciones en Python.

El código en el bloque excepto se ejecuta si se lanza una excepción en el bloque intentar.

Código:

import numpy as np

arr = np.zeros((1, 2), dtype=int)
a = [6580225610007]
try:
    arr[0] = a
except:
    print("Error in code")

Producción :

Error in code

El ejemplo anterior evita el error utilizando los bloques try y except. Recuerde que esto no es una solución para el error dado, sino un método para solucionarlo.

Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Artículo relacionado - Python Error