Wenn ich diese Methoden starte
%Vor%Ich habe immer als Ausgabe oder alle True, oder alle False für jeden Wert von s (was natürlich eine Zeichenfolge ist). Was ist der Unterschied zwischen den dreien? Können Sie ein Beispiel geben, das zwei Wahrheiten und einen falschen (oder umgekehrt) gibt?
In der Python-Dokumentation wird der Unterschied zwischen den drei Methoden festgestellt.
str.isdigit
Gibt true zurück, wenn alle Zeichen in der Zeichenfolge Ziffern sind und mindestens ein Zeichen vorhanden ist, andernfalls false. Ziffern enthalten Dezimalzeichen und Ziffern, die speziell behandelt werden müssen, z. B. die hochgestellten Ziffern für die Kompatibilität. Dies umfasst Ziffern, die nicht zur Bildung von Zahlen in der Basis 10 verwendet werden können, wie die Kharosthi-Zahlen. Formal ist eine Ziffer ein Zeichen mit dem Eigenschaftswert Numeric_Type = Digit oder Numeric_Type = Decimal .
str.isnumeric
Geben Sie true zurück, wenn alle Zeichen in der Zeichenfolge numerische Zeichen sind und mindestens ein Zeichen vorhanden ist, andernfalls false. Numerische Zeichen umfassen Ziffernzeichen und alle Zeichen, die die Eigenschaft Unicode numeric value aufweisen, z. U + 2155, VULGAR FRACTION EINE FÜNFTE. Formal sind numerische Zeichen diejenigen mit dem Eigenschaftswert Numeric_Type = Digit, Numeric_Type = Dezimal oder Numeric_Type = numerisch .
str.isdecimal
Geben Sie true zurück, wenn alle Zeichen in der Zeichenfolge Dezimalzeichen sind und mindestens ein Zeichen vorhanden ist, andernfalls false. Dezimalzeichen sind Zeichen, die verwendet werden können, um Zahlen in der Basis 10 zu bilden, z. U + 0660, ARABIC-INDIC DIGIT ZERO. Formal ist ein Dezimalzeichen ein Zeichen in der allgemeinen Unicode-Kategorie "Nd" .
Wie @Wim gesagt hat, ist der Hauptunterschied zwischen den drei Methoden die Art, wie sie mit bestimmten Unicode-Zeichen umgehen.
Tags und Links python string python-3.x isnumeric isdigit