Ermitteln, ob eine Python-Zeichenfolge eine Zahl oder ein Buchstabe ist [duplizieren]

8

Wie kann ich Zahlen oder Buchstaben in einer Zeichenfolge erkennen? Ich bin mir bewusst, dass Sie die ASCII-Codes verwenden, aber welche Funktionen nutzen sie?

    
TriskelionKal 18.10.2016, 00:15
quelle

2 Antworten

18

Überprüfen Sie, ob die Zeichenfolge positive Ziffer (ganze Zahl) und Alphabet

ist

Sie können str.isdigit() und str.isalpha() um zu überprüfen, ob die angegebene Zeichenfolge ist positive Ganzzahl bzw. Alphabet.

Beispielergebnisse:

%Vor%

Auf Strings als positiv / negativ prüfen - Integer / Float

str.isdigit() gibt False zurück, wenn die Zeichenfolge eine negative Zahl oder eine Gleitkommazahl ist. Zum Beispiel:

%Vor%

Wenn Sie möchten, prüfen Sie auch die negativen ganzen Zahlen und float , dann können Sie eine benutzerdefinierte Funktion schreiben, um nach ihr zu suchen:

%Vor%

Beispiellauf:

%Vor%

Verwerfen Sie "NaN" (keine Zahl) Zeichenketten, während Sie nach Nummer

suchen

Die obigen Funktionen geben True für die Zeichenfolge "NAN" (Not a number) zurück, da es für Python ein gültiger float-Wert ist, der keine Zahl darstellt. Zum Beispiel:

%Vor%

Um zu überprüfen, ob die Zahl "NaN" ist, können Sie % verwenden. co_de% als:

%Vor%

Oder wenn Sie keine zusätzliche Bibliothek importieren möchten, um dies zu überprüfen, dann können Sie es einfach überprüfen, indem Sie es mit sich selbst vergleichen, indem Sie math.isnan() verwenden. Python gibt == zurück, wenn False float mit sich selbst verglichen wird. Zum Beispiel:

%Vor%

Daher kann die Funktion nan so aktualisiert werden, dass is_number für False wie folgt zurückgegeben wird:

%Vor%

Beispiellauf:

%Vor%

Zulassen, dass komplexe Zahlen wie "1 + 2j" als gültige Zahl

behandelt werden

Die obige Funktion gibt Ihnen "NaN" für die komplexen Zahlen zurück . Wenn Sie möchten, dass Ihre Funktion False komplexe Zahlen als gültige Zahl behandelt , müssen Sie den übergebenen String in is_number anstelle von complex() . Dann wird Ihre float() Funktion wie folgt aussehen:

%Vor%

Beispiellauf:

%Vor%

PS: Jede Operation für jede Prüfung, abhängig vom Typ der Nummer, verursacht zusätzlichen Overhead. Wählen Sie die Version von is_number function, die zu Ihrer Anforderung passt.

    
Moinuddin Quadri 18.10.2016, 00:30
quelle
2

Für eine Zeichenfolge der Länge 1 können Sie einfach isdigit() oder isalpha()

ausführen

Wenn Ihre String-Länge größer als 1 ist, können Sie eine Funktion wie .. machen.

%Vor%     
esquarer 18.10.2016 00:45
quelle

Tags und Links