Wie man eine Zeichenkette, die eine Zahl enthält, in Python prüft
-
Python-Funktion
anymitstr.isdigitzur Prüfung, ob eine Zeichenkette eine Zahl enthält -
map()Funktion -
re.search(r'\d')um zu prüfen, ob eine Zeichenkette eine Zahl enthält
Dieser Artikel stellt vor, wie geprüft werden kann, ob eine Python-Zeichenkette eine Zahl enthält oder nicht.
Die in Python eingebaute Funktion any function zusammen mit str.isdigit gibt True zurück, wenn die gegebene Zeichenkette eine Zahl enthält, andernfalls gibt sie False zurück.
Die Python-Suchmethode für reguläre Ausdrücke mit dem Muster r'\d' könnte auch True zurückgeben, wenn die gegebene Zeichenkette eine Zahl enthält.
Python-Funktion any mit str.isdigit zur Prüfung, ob eine Zeichenkette eine Zahl enthält
any Funktion gibt True zurück, wenn irgendein Element der gegebenen iterabel True ist, andernfalls gibt sie False zurück.
str.isdigit() gibt True zurück, wenn alle Zeichen in der gegebenen Zeichenkette Ziffern sind, andernfalls False.
any(chr.isdigit() for chr in stringExample)
Wenn stringExample mindestens eine Zahl enthält, dann gibt der obige Code True zurück, weil chr.isdigit() for chr in stringExample mindestens ein True in der iterabel hat.
Arbeitsbeispiel
str1 = "python1"
str2 = "nonumber"
str3 = "12345"
print(any(chr.isdigit() for chr in str1))
print(any(chr.isdigit() for chr in str2))
print(any(chr.isdigit() for chr in str3))
Ausgabe:
True
False
True
map() Funktion
Python map(function, iterable) fuction wendet auf jedes Element der gegebenen iterable eine Funktion an und gibt einen Iterator zurück, der das obige Ergebnis liefert.
Daher könnten wir die obige Lösung umschreiben zu,
any(map(str.isdigit, stringExample))
Arbeitsbeispiel
str1 = "python1"
str2 = "nonumber"
str3 = "12345"
print(any(map(str.isdigit, str1)))
print(any(map(str.isdigit, str2)))
print(any(map(str.isdigit, str3)))
Ausgabe:
True
False
True
re.search(r'\d') um zu prüfen, ob eine Zeichenkette eine Zahl enthält
re.search(r'\d', string) pattern scannt die String und gibt das übereinstimmende Objekt für die erste Stelle zurück, die mit dem gegebenen Muster übereinstimmt - \d, was eine beliebige Zahl zwischen 0 und 9 bedeutet und None zurückgibt, wenn keine Übereinstimmung gefunden wird.
import re
print(re.search(r"\d", "python3.8"))
# output: <re.Match object; span=(6, 7), match='3'>
Das Match-Objekt enthält das 2-Tupel span, das die Start- und Endposition des Matches angibt, und auch den übereinstimmenden Inhalt wie match = '3'.
Die Funktion bool() könnte das Ergebnis der re.search von match object oder None auf True oder False casten.
Arbeitsbeispiel
import re
str1 = "python12"
str2 = "nonumber"
str3 = "12345"
print(bool(re.search(r"\d", str1)))
print(bool(re.search(r"\d", str2)))
print(bool(re.search(r"\d", str3)))
Ausgabe:
True
False
True
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn FacebookVerwandter Artikel - Python String
- Entfernen Kommas aus String in Python
- Wie man überprüft, ob eine Zeichenkette auf eine pythonische Weise leer ist
- Konvertieren einer Zeichenkette in einen Variablennamen in Python
- Wie man Leerzeichen in einem String in Python entfernt
- Wie man in Python Zahlen aus einer Zeichenkette extrahiert
- Wie man in Python String in datetime konvertiert
