Zum Hauptinhalt springen

Wie kann ich überprüfen, ob eine Zeichenfolge in Python nur aus Ziffern besteht

Wenn Sie in Python mit Zahlen arbeiten, müssen Sie manchmal herausfinden, ob eine Zeichenfolge nur aus Zahlen besteht. Dies kann beispielsweise bei der Verarbeitung von Benutzereingaben oder beim Arbeiten mit Daten aus einer Datei nützlich sein.

In diesem Artikel werde ich Ihnen einige Möglichkeiten erläutern, um zu überprüfen, ob eine Zeichenfolge in Python vollständig aus Ziffern besteht. Der erste und einfachste Weg ist die Verwendung der integrierten String-Methode isdigit(). Es gibt True zurück, wenn die Zeichenfolge nur aus Ziffern besteht, andernfalls False.

Es gibt auch andere Möglichkeiten zu überprüfen, ob eine Zeichenfolge nur aus Ziffern besteht. Sie können beispielsweise reguläre Ausdrücke verwenden, indem Sie das re-Modul verwenden. Unabhängig davon, welche Methode Sie wählen, denken Sie daran, dass die korrekte Validierung und Verarbeitung von Daten ein wichtiger Teil der Programmierung ist.

Methoden zum Überprüfen einer Zeichenfolge auf nur Ziffern in Python

Python bietet mehrere Methoden an, um zu überprüfen, ob eine Zeichenfolge nur aus Ziffern besteht. Dies kann bei der Validierung von Dateneingaben oder bei der Verarbeitung von Textdateien nützlich sein, bei denen Sie nur mit Zahlen arbeiten möchten.

Hier sind einige Methoden, mit denen Sie eine Zeichenfolge auf nur Ziffern überprüfen können:

MethodeDie Beschreibung
isdigit()Überprüft, ob alle Zeichen in der Zeichenfolge Ziffern sind. Gibt True zurück, wenn alle Zeichen Ziffern haben, andernfalls wird False zurückgegeben.
isnumeric()Überprüft, ob alle Zeichen in der Zeichenfolge Zahlen sind. Es berücksichtigt auch Zeichen, die Bruchzahlen und mathematische Symbole darstellen, wie Notationsindizes oder Zahlen im römischen Format. Gibt True zurück, wenn alle Zeichen eine Zahl sind, andernfalls gibt False zurück.
isdecimal()Überprüft, ob alle Zeichen in der Zeichenfolge Dezimalstellen (0-9) sind. Es berücksichtigt keine Zeichen, die Dezimaltrennzeichen oder Symbole anderer Zahlensysteme darstellen. Gibt True zurück, wenn alle Zeichen Dezimalstellen sind, andernfalls wird False zurückgegeben.

Im Folgenden sind Beispiele für die Verwendung jeder dieser Methoden aufgeführt:

string1 = "12345"string2 = "123.45"string3 = "123a45"# Использование метода isdigit()# Использование метода isnumeric()# Использование метода isdecimal()

Mit diesen Methoden können Sie leicht überprüfen, ob eine Zeichenfolge in Python nur aus Zahlen besteht, und die entsprechenden Schritte abhängig vom Ergebnis der Überprüfung ausführen.

Methode 1: Verwenden der for-Schleife und der isdigit() -Funktion

Hier ist ein Beispielcode:

for Schleife und isdigit()
def is_digits(string):
for char in string:
if not char.isdigit():
return False
return True

Sie können diese Funktion verwenden, um eine beliebige Zeichenfolge auf den Status der Ziffern zu überprüfen. Übergeben Sie einfach die Zeichenfolge als Argument an die Funktion is_digits() , und sie gibt True zurück , wenn alle Zeichen in der Zeichenfolge Ziffern sind, andernfalls False.

Anwendungsbeispiel:

Beispiele
print(is_digits("123456")) # True
print(is_digits("123abc")) # False
print(is_digits("abcdefg")) # False

In diesem Codebeispiel überprüft die Funktion is_digits() die Zeilen "123456" , "123abc" und "abcdefg" auf den Status aus Ziffern. Die erste Zeile besteht nur aus Ziffern, daher lautet das Ergebnis True . Die zweite und dritte Zeile enthalten Zeichen, die keine Ziffern sind, daher lautet das Ergebnis False .

Methode 2: Verwenden von regulären Ausdrücken

Um zu überprüfen, dass eine Zeichenfolge nur aus Ziffern besteht, können wir den regulären Ausdruck ^\d+$ verwenden . Hier steht ^ für den Anfang der Zeichenfolge, \d ist eine beliebige Ziffer, + steht für ein oder mehrere Vorkommen des vorherigen Zeichens und $ steht für das Ende der Zeichenfolge.

ZeileErgebnis
"12345"True
"hello123"False
"9876543210"True
"123 456"False

So können Sie reguläre Ausdrücke verwenden, um zu überprüfen, ob eine Zeichenfolge nur aus Ziffern besteht:

import redef is_digit_string(string):pattern = r'^\d+$'if re.match(pattern, string):return Trueelse:return Falsestring = input("Введите строку: ")if is_digit_string(string):print("Строка состоит только из цифр.")else:print("Строка не состоит только из цифр.")

Wenn Sie das Programm starten, können Sie die Zeichenfolge eingeben, die Sie überprüfen möchten. Das Programm gibt eine Meldung aus, ob die Zeichenfolge nur aus Ziffern besteht oder nicht.

Mit regulären Ausdrücken können Sie flexibler und genauer prüfen, ob bestimmte Muster in einer Zeichenfolge vorhanden sind. Diese Methode ist besonders nützlich, wenn Sie nicht nur überprüfen müssen, ob eine Zeichenfolge aus Zahlen besteht, sondern auch andere Muster oder Formate definieren müssen.

Methode 3: Verwenden der str-Methode.isdigit()

Es gibt eine eingebaute Methode in Python isdigit(), mit dem Sie feststellen können, ob eine Zeichenfolge nur aus Ziffern besteht. Die Methode gibt einen Wert zurück True, wenn alle Zeichen in der Zeichenfolge numerisch sind, und False wenn es mindestens ein nicht-numerisches Zeichen gibt.

Beispiel für die Verwendung der Methode isdigit():

string = "12345"string = "12345abc"string = "abc"
Wie aus dem Beispiel ersichtlich ist, ist die Methode isdigit() kann verwendet werden, um schnell und einfach zu überprüfen, ob nur Ziffern in einer Zeichenfolge vorhanden sind. Es ist besonders nützlich, wenn Sie mit Benutzereingaben arbeiten oder bei Bedarf überprüfen, ob die Zeichenfolge eine Zahl ist.

Methode 4: Verwenden der Funktion str.isnumeric()


Функция isnumeric() возвращает True, если строка состоит только из символов, которые являются числами. В противном случае, она возвращает False. Например:
string = "12345"print(string.isnumeric())string = "12a45"print(string.isnumeric())

Функция isnumeric() обрабатывает только символы, которые являются числами. Она не распознает десятичные числа, отрицательные числа или числа с разделителями тысяч. Для таких случаев лучше использовать другие методы проверки строки на числовое содержимое.
Метод str.isnumeric() является простым и удобным способом для проверки, что строка содержит только цифры в Python.

Methode 5: Verwenden des Unicodedata-Moduls


Модуль unicodedata в Python предоставляет функциональность для работы с символами Юникода. Он позволяет проверять, относится ли символ к определенной категории. С помощью этого модуля можно проверить, состоит ли строка только из цифр.
Вот пример использования модуля unicodedata для проверки строки на наличие только цифр:
KodeDie Beschreibung
import unicodedata Unicodedata-Modul importieren
def is_digit(string): Definieren der is_digit-Funktion mit dem string-Parameter
for char in string: Schleife für jedes Zeichen in einer Zeichenfolge
if unicodedata.category(char) != 'Nd': Überprüft die Kategorie des Symbols. Wenn es sich nicht um eine Ziffer handelt, wird False zurückgegeben
return False Gibt False zurück, wenn ein Zeichen gefunden wird, das keine Ziffer ist
return True Gibt True zurück, wenn alle Zeichen in der Zeichenfolge Ziffern sind
string = "12345" Testzeichenfolge
print(is_digit(string))
string = "12345a" Testzeichenfolge
print(is_digit(string))

Mit dem unicodedata-Modul können Sie eine Zeichenfolge auf nur numerische Zeichen überprüfen, ohne reguläre Ausdrücke oder integrierte Python-Funktionen zu verwenden.