Beheben Sie den TypeError: `float`-Objekt kann in Python nicht als Ganzzahl interpretiert werden

Rana Hasnain Khan 15 Februar 2024
Beheben Sie den TypeError: `float`-Objekt kann in Python nicht als Ganzzahl interpretiert werden

Wir stellen vor, warum ein TypeError: 'float' object can not Interpreted as an Integer-Fehler auftritt und wie wir ihn in Python lösen können.

Korrigieren Sie den TypeError: 'float' object can not Interpreted as an Integer in Python

Python ist eine Programmiersprache, die in vielen Bereichen weit verbreitet ist, darunter wissenschaftliches Rechnen, Datenanalyse und maschinelles Lernen. Einer der häufigsten Datentypen von Python ist die Gleitkommazahl, auch bekannt als float.

Wenn Sie jedoch mit dem Datentyp float in Python arbeiten, ist es wichtig, daran zu denken, dass wir float nicht als Ganzzahl interpretieren können.

In diesem Artikel untersuchen wir die Gründe für diese Einschränkung und wie man mit float- und Integer-Objekten in Python arbeitet. Beginnen wir zunächst damit, den Unterschied zwischen einem float und einer Ganzzahl zu verstehen.

Eine Ganzzahl ist eine ganze Zahl ohne Dezimalpunkt, während ein float eine Zahl mit Dezimalpunkt oder Bruch ist.

Beispielsweise ist die Zahl 7 eine ganze Zahl, während 8.0 ein float ist. Ebenso ist 9.6 auch ein float.

Während beide Datentypen Zahlen darstellen, sind sie in Python nicht austauschbar. Sie können Fehler auslösen, wenn sie als einander interpretiert werden.

Zum Beispiel haben wir eine Variable, die eine Ganzzahl enthalten sollte, aber stattdessen ein float hat, wie unten gezeigt.

x = 3.5
for a in range(x):
    print(a)

Dies wird einen Fehler auslösen, wie unten gezeigt.

Typfehler Beispiel

Wie aus dem Beispiel ersichtlich, wird der Typ der Variable in Python anhand der zugewiesenen Werte automatisch bestimmt. Wenn wir beispielsweise einer Variablen x eine 3 zuweisen, hat sie den Datentyp Integer; Wenn wir andererseits einer Variablen y 3.5 zuweisen, ist es ein Datentyp von float, wie unten gezeigt.

x = 3
y = 3.5
print(type(x))
print(type(y))

Die Ausgabe des obigen Codes ist unten dargestellt.

Datentypen von Variablen in Python

Es gibt zwei mögliche Lösungen, um diesen Fehler in Python zu beseitigen. Die erste Lösung besteht darin, sicherzustellen, dass wir immer den ganzzahligen Datentyp übergeben, wenn eine Ganzzahl erforderlich ist.

Wir können das ganz einfach tun, indem wir die in Python eingebaute Methode int() verwenden, die alle anderen Datentypen in int konvertiert.

Lassen Sie uns ein Beispiel haben, in dem wir die Variable float an die Methode int() übergeben, wie unten gezeigt.

x = 3.5
y = int(x)
for i in range(y):
    print(i)

Die Ausgabe des obigen Codes sieht wie unten gezeigt aus.

Die erste Lösung des Float-Objekts kann in Python nicht als Ganzzahl interpretiert werden

Wie die obige Lösung zeigt, können wir jeden Datentyp mit einer einfachen Methode, int(), leicht in eine Ganzzahl konvertieren. Eine andere Lösung für diesen Fehler ist die Verwendung der Funktionen math.floor() oder math.ceil().

Zuerst müssen wir die Bibliothek math in unser Projekt importieren, um diese Funktionen nutzen zu können.

Die Bibliothek math ist die Standardbibliothek in Python, die mit Python installiert wird. Wenn Sie einen Fehler in der Zeile import math im Code erhalten, können Sie ihn einfach mit dem folgenden Befehl installieren.

pip install math

Sobald die Bibliothek installiert ist, können wir sie mit der folgenden Codezeile in unser Projekt importieren.

import math

Bevor wir zur Lösung springen, ist es wichtig, ein paar Details über die beiden Funktionen zu wissen, die wir in diesem Beispiel verwenden werden, math.floor() und math.ceil(). Die Funktion math.floor() wird verwendet, um die angegebene Gleitkommazahl auf die nächste Ganzzahl abzurunden, die kleiner oder gleich der angegebenen Zahl ist.

Die Funktion math.ceil() wird verwendet, um die angegebene Gleitkommazahl auf die nächste ganze Zahl zu runden, die größer oder gleich der angegebenen Zahl ist. Wir können jede der oben genannten Funktionen je nach Bedarf verwenden.

Beispiele für diese Funktionen sind unten gezeigt.

import math

x = 3.7
floor_fun = math.floor(x)
ceil_fun = math.ceil(x)
print("The floor function will return: ")
print(floor_fun)
print("The ceil function will return: ")
print(ceil_fun)

Die Ausgabe des obigen Codes ist unten dargestellt.

Die zweite Lösung des Float-Objekts kann in Python nicht als Ganzzahl interpretiert werden

Wie aus dem Beispiel ersichtlich, rundet die Funktion math.floor() die Zahl ab; Andererseits rundet die Funktion math.ceil() die Zahl auf die nächste ganze Zahl auf.

Zusammenfassend lässt sich sagen, dass jedes Mal, wenn wir versuchen, ein float-Objekt als Integer in Python zu verwenden, ein TypeError: 'float' object can not Interpreted as an Integer resultiert. Es ist wichtig, auf die in unserem Code verwendeten Datentypen zu achten und sie nach Bedarf richtig zu konvertieren, um diesen Fehler zu vermeiden.

Die Bibliothek math bietet nützliche Funktionen wie math.floor() und math.ceil() zum Runden von Gleitkommazahlen auf die nächste ganze Zahl. Indem wir uns dieser Probleme bewusst sind und die geeigneten Methoden anwenden, können wir häufige Fehler vermeiden und sicherstellen, dass unser Code reibungslos läuft.

Rana Hasnain Khan avatar Rana Hasnain Khan avatar

Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.

LinkedIn

Verwandter Artikel - Python Error