Wie prüfe ich, ob eine Variable eine ganze Zahl ist?
-1 weil ich diesen Code nicht in der Produktion oder bei meinen Teamkollegen sehen möchte. Er verbirgt Ihre Absicht. Die meisten der anderen Antworten hier sind viel deutlicher und sollten bevorzugt werden.
0 Stimmen
@katrielalex: Wenn er meine Antwort als die richtige gewählt hat, bedeutet das nicht, dass Hulk den von Ihnen erwähnten Eindruck hatte. Es gibt auch die
ValueError
Ausnahmemöglichkeit, die VOR dertype()
.0 Stimmen
@Hulk: Ich will wirklich nicht dafür werben, dass Sie meine Antwort akzeptieren - Sie können sie gerne an Ashish zurückgeben; er hat eine absolut gültige und technisch korrekte Antwort gegeben. Ich wollte nur sicherstellen, dass Sie auch den Rest der Ratschläge auf dieser Seite gelesen haben.
0 Stimmen
@katrielalex: Ashish hatte Recht, aber die Kodierungsszenarien brauchten die Ausnahmeklausel, und so habe ich meine Antwort geändert, nichts für ungut, Ashish.
2 Stimmen
@Hulk: Nicht böse gemeint. Aber um das klarzustellen, der einzige Weg, wie man eine Ausnahme abfangen kann (soweit ich weiß), ist die Verwendung einer Ausnahmeklausel. Ich habe vorgeschlagen, dass Sie die
TypeError
Ausnahme.20 Stimmen
Diese Frage ist zweideutig, und die Antworten sind entsprechend geteilt. Einige antworten darauf, wie man den Typ einer Variablen überprüft (5True, 5.0 False), während andere darauf antworten, wie man überprüft, dass der Wert eine ganze Zahl ist (5True, 5.0True, Fraction(5,1)True, 5.4False). Vielleicht sollten die Frage und die Antworten entsprechend aufgeteilt werden?
0 Stimmen
@S.Lott - Ich möchte meine Ausgabe formatieren, mit "{:03.2e}".format(value) für Fließkommazahlen und str(value) für Ganzzahlen.
0 Stimmen
Verwandt: stackoverflow.com/questions/21583758/
0 Stimmen
@S.Lott - es gibt einen sehr triftigen Grund dafür - wenn Sie Tests schreiben und prüfen, ob Ihr Wert tatsächlich Integer ist und wo assertIsNone die Bedingung, die Sie testen möchten, nicht testen würde.
0 Stimmen
Das ist eine völlig berechtigte Frage. Beispiel: Sie verarbeiten Daten in Stapeln, und der Erhalt einer nicht ganzzahligen Zahl in einer Zeile führt dazu, dass der gesamte Stapel in einer späteren Phase fehlschlägt. Sie möchten das Problem erkennen, bevor eine Ausnahme ausgelöst wird (und möglicherweise Ihre eigene Ausnahme auslösen).
1 Stimmen
Der einfachste Weg (der in Python 2.7.11 funktioniert) ist int(var) == var. Funktioniert mit .0 Floats und liefert boolean.
2 Stimmen
Meinen Sie "Wie stelle ich fest, ob der Typ einer Variablen eine ganze Zahl ist?" oder "Wie stelle ich fest, ob der Wert einer Variablen eine ganze Zahl ist?"