Python OverflowError: Python Int zu groß, um in C Long konvertiert zu werden

Manav Narula 21 Juni 2023
  1. der OverflowError: Python int too large to convert to C long in Python
  2. Beheben Sie den OverflowError: Python int too large to convert to C long in Python
Python OverflowError: Python Int zu groß, um in C Long konvertiert zu werden

Dieses Tutorial demonstriert den Fehler OverflowError: python int too large to convert to c long in Python.

der OverflowError: Python int too large to convert to C long in Python

Ein OverflowError wird in Python ausgelöst, wenn ein arithmetisches Ergebnis die angegebene Grenze des Datentyps überschreitet. Wir stoßen auf diesen angegebenen Fehler, weil wir versuchen, mit einem Integer-Wert zu arbeiten, der größer als der angegebene Bereich ist.

Code:

import numpy as np

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

Ausgang:

OverflowError: Python int too large to convert to C long

Das obige Beispiel erzeugt ein Array vom Typ int. Wir versuchen, eine Liste zu speichern, die eine Ganzzahl enthält, die größer als der Bereich des Typs int ist.

Die maximale Größe kann auch mit einer Konstante aus der Bibliothek sys überprüft werden. Diese Konstante ist als sys.maxsize verfügbar.

Beheben Sie den OverflowError: Python int too large to convert to C long in Python

Um diesen Fehler zu vermeiden, müssen wir den maximalen Bereich beachten, den wir mit dem Typ int verwenden können. Es gibt eine Lösung, insbesondere in diesem Beispiel in Bezug auf ein numpy-Array.

Der Typ int entsprach dem Typ long int der C-Sprache und wurde in Python 3 geändert, und der Typ int wurde in einen Typ mit beliebiger Genauigkeit konvertiert.

Die Bibliothek numpy verwendet es jedoch immer noch so, wie es in Python 2 deklariert ist. Das long int ist normalerweise plattformabhängig, aber für Windows ist es immer 32-Bit.

Um diesen Fehler zu beheben, können wir andere Typen verwenden, die nicht plattformabhängig sind. Die häufigste Alternative ist der Typ np.int64, den wir im Array mit dem Parameter dtype angeben.

Code:

import numpy as np

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

Ausgang:

[[6580225610007 6580225610007]]

Das obige Beispiel zeigt, dass der Fehler mit dem alternativen Typ behoben wird.

Eine andere Möglichkeit kann die Verwendung eines try- und except-Blocks sein. Diese beiden Blöcke werden verwendet, um Ausnahmen in Python zu umgehen.

Der Code im Ausnahme-Block wird ausgeführt, wenn im try-Block eine Ausnahme ausgelöst wird.

Code:

import numpy as np

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

Ausgang:

Error in code

Das obige Beispiel vermeidet den Fehler mit den Blöcken try und except. Denken Sie daran, dass dies keine Lösung für den angegebenen Fehler ist, sondern eine Methode, um ihn zu umgehen.

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

Verwandter Artikel - Python Error