Python OverflowError: Python Int zu groß, um in C Long konvertiert zu werden
-
der
OverflowError: Python int too large to convert to C long
in Python -
Beheben Sie den
OverflowError: Python int too large to convert to C long
in Python
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 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.
LinkedInVerwandter Artikel - Python Error
- Adresse wird bereits verwendet Fehler in Python
- AttributeError: __Exit__ in Python
- AttributeError: 'Dict'-Objekt hat kein Attribut 'Append' in Python
- AttributeError: 'NoneType'-Objekt hat kein Attribut 'Text' in Python
- AttributeError: Int-Objekt hat kein Attribut
- AttributeError: Modul Urllib hat keine Attributanforderung