Wie man prüft, ob eine Zeichenkette in Python eine Zahl ist

PythonPythonBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie feststellen können, ob eine Zeichenkette in Python eine Zahl darstellt. Wir beginnen damit, verschiedene Zeichenketten, von denen einige wie Zahlen aussehen, in einem Python-Skript namens numeric_strings.py zu definieren. Dieses Skript gibt diese Zeichenketten in die Konsole aus und bereitet somit den Boden für die anschließende Analyse.

Als Nächstes werden wir die Methode isdigit() untersuchen, um Zeichenketten zu identifizieren, die nur Ziffern enthalten, was auf nicht-negative Ganzzahlen hinweist. Diese Methode ist von entscheidender Bedeutung für die Validierung von Daten und die sichere Konvertierung in numerische Datentypen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/ErrorandExceptionHandlingGroup(["Error and Exception Handling"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python/BasicConceptsGroup -.-> python/strings("Strings") python/BasicConceptsGroup -.-> python/type_conversion("Type Conversion") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") python/ErrorandExceptionHandlingGroup -.-> python/catching_exceptions("Catching Exceptions") subgraph Lab Skills python/strings -.-> lab-559573{{"Wie man prüft, ob eine Zeichenkette in Python eine Zahl ist"}} python/type_conversion -.-> lab-559573{{"Wie man prüft, ob eine Zeichenkette in Python eine Zahl ist"}} python/build_in_functions -.-> lab-559573{{"Wie man prüft, ob eine Zeichenkette in Python eine Zahl ist"}} python/catching_exceptions -.-> lab-559573{{"Wie man prüft, ob eine Zeichenkette in Python eine Zahl ist"}} end

Definition von numerischen Zeichenketten

In diesem Schritt werden wir untersuchen, wie Python Zeichenketten behandelt, die Zahlen darstellen. Diese werden "numerische Zeichenketten" genannt. Das Verständnis, wie man sie identifiziert und damit arbeitet, ist für die Datenvalidierung und -manipulation von entscheidender Bedeutung.

Eine numerische Zeichenkette ist einfach eine Zeichenkette, die nur Zeichen enthält, die als Zahl interpretiert werden können. Dies kann eine Ganzzahl, eine Gleitkommazahl oder sogar eine Zahl in wissenschaftlicher Notation sein.

Lassen Sie uns beginnen, indem wir ein Python-Skript erstellen, um einige Beispiele zu untersuchen.

  1. Erstellen Sie im VS Code-Editor eine neue Datei namens numeric_strings.py in Ihrem ~/project-Verzeichnis.

  2. Fügen Sie den folgenden Code zur Datei numeric_strings.py hinzu:

## Define some strings
string1 = "123"
string2 = "3.14"
string3 = "-42"
string4 = "0"
string5 = "  56  "
string6 = "abc"
string7 = "123.45.67"
string8 = "1e10"

## Print the strings
print(f"String 1: {string1}")
print(f"String 2: {string2}")
print(f"String 3: {string3}")
print(f"String 4: {string4}")
print(f"String 5: {string5}")
print(f"String 6: {string6}")
print(f"String 7: {string7}")
print(f"String 8: {string8}")
  1. Speichern Sie die Datei numeric_strings.py.

  2. Führen Sie nun das Skript aus der Kommandozeile aus:

python numeric_strings.py

Sie sollten die folgende Ausgabe sehen:

String 1: 123
String 2: 3.14
String 3: -42
String 4: 0
String 5:   56
String 6: abc
String 7: 123.45.67
String 8: 1e10

Wie Sie sehen können, haben wir mehrere Zeichenketten definiert, von denen einige wie Zahlen aussehen. In den folgenden Schritten werden wir lernen, wie man feststellt, welche dieser Zeichenketten sicher in numerische Datentypen umgewandelt werden können.

Verwendung von isdigit() für Ganzzahlen

In diesem Schritt lernen wir, wie wir die Methode isdigit() verwenden können, um zu prüfen, ob eine Zeichenkette nur Ziffern enthält und eine nicht-negative Ganzzahl darstellt. Diese Methode ist besonders nützlich für die Validierung von Benutzereingaben oder Daten, die aus Dateien gelesen werden.

Die Methode isdigit() ist eine integrierte Zeichenkettenmethode in Python. Sie gibt True zurück, wenn alle Zeichen in der Zeichenkette Ziffern sind und es mindestens ein Zeichen gibt, und False sonst.

Lassen Sie uns unser vorheriges Skript ändern, um isdigit() zu verwenden:

  1. Öffnen Sie die Datei numeric_strings.py im VS Code-Editor.

  2. Ändern Sie den Code, um die Methode isdigit() wie folgt einzubeziehen:

## Define some strings
string1 = "123"
string2 = "3.14"
string3 = "-42"
string4 = "0"
string5 = "  56  "
string6 = "abc"
string7 = "123.45.67"
string8 = "1e10"

## Check if the strings are digits
print(f"String 1 '{string1}' isdigit(): {string1.isdigit()}")
print(f"String 2 '{string2}' isdigit(): {string2.isdigit()}")
print(f"String 3 '{string3}' isdigit(): {string3.isdigit()}")
print(f"String 4 '{string4}' isdigit(): {string4.isdigit()}")
print(f"String 5 '{string5}' isdigit(): {string5.isdigit()}")
print(f"String 6 '{string6}' isdigit(): {string6.isdigit()}")
print(f"String 7 '{string7}' isdigit(): {string7.isdigit()}")
print(f"String 8 '{string8}' isdigit(): {string8.isdigit()}")
  1. Speichern Sie die Datei numeric_strings.py.

  2. Führen Sie das Skript aus der Kommandozeile aus:

python numeric_strings.py

Sie sollten die folgende Ausgabe sehen:

String 1 '123' isdigit(): True
String 2 '3.14' isdigit(): False
String 3 '-42' isdigit(): False
String 4 '0' isdigit(): True
String 5 '  56  ' isdigit(): False
String 6 'abc' isdigit(): False
String 7 '123.45.67' isdigit(): False
String 8 '1e10' isdigit(): False

Wie Sie sehen können, gibt isdigit() nur True für Zeichenketten zurück, die nur Ziffern enthalten. Es gibt False für Zeichenketten zurück, die Dezimalpunkte, Minuszeichen, Leerzeichen oder andere Nicht-Ziffernzeichen enthalten.

Diese Methode ist nützlich, um zu überprüfen, ob eine Zeichenkette sicher in eine Ganzzahl umgewandelt werden kann, ohne dass ein Fehler auftritt. Es ist jedoch wichtig zu beachten, dass isdigit() nur für nicht-negative Ganzzahlen funktioniert. Für andere numerische Datentypen müssen wir andere Ansätze verwenden, wie wir im nächsten Schritt sehen werden.

Versuch der Konvertierung mit float()

In diesem Schritt werden wir untersuchen, wie man die Funktion float() verwendet, um Zeichenketten in Gleitkommazahlen umzuwandeln. Dies ist nützlich, wenn Sie mit Zahlen arbeiten müssen, die Dezimalpunkte haben oder in wissenschaftlicher Notation dargestellt sind.

Die Funktion float() ist eine integrierte Funktion in Python, die versucht, ihr Argument in eine Gleitkommazahl umzuwandeln. Wenn das Argument eine Zeichenkette ist, muss es eine gültige Darstellung einer Gleitkommazahl sein.

Lassen Sie uns unser Skript erneut ändern, um float() zu verwenden und zu sehen, wie es verschiedene Zeichenketten behandelt:

  1. Öffnen Sie die Datei numeric_strings.py im VS Code-Editor.

  2. Ändern Sie den Code, um die Funktion float() einzubeziehen und potenzielle Fehler zu behandeln:

## Define some strings
string1 = "123"
string2 = "3.14"
string3 = "-42"
string4 = "0"
string5 = "  56  "
string6 = "abc"
string7 = "123.45.67"
string8 = "1e10"

## Try converting the strings to floats
strings = [string1, string2, string3, string4, string5, string6, string7, string8]

for s in strings:
    try:
        float_value = float(s)
        print(f"String '{s}' can be converted to float: {float_value}")
    except ValueError:
        print(f"String '{s}' cannot be converted to float")
  1. Speichern Sie die Datei numeric_strings.py.

  2. Führen Sie das Skript aus der Kommandozeile aus:

python numeric_strings.py

Sie sollten die folgende Ausgabe sehen:

String '123' can be converted to float: 123.0
String '3.14' can be converted to float: 3.14
String '-42' can be converted to float: -42.0
String '0' can be converted to float: 0.0
String '  56  ' can be converted to float: 56.0
String 'abc' cannot be converted to float
String '123.45.67' cannot be converted to float
String '1e10' can be converted to float: 10000000000.0

Wie Sie sehen können, kann float() Zeichenketten, die Ganzzahlen, Dezimalzahlen und Zahlen in wissenschaftlicher Notation darstellen, erfolgreich umwandeln. Es entfernt auch automatisch führende und abschließende Leerzeichen (wie bei string5 gezeigt). Wenn die Zeichenkette jedoch nicht als gültige Gleitkommazahl interpretiert werden kann (wie bei string6 und string7 gezeigt), löst es einen ValueError aus.

Die Verwendung von try-except-Blöcken ermöglicht es uns, diese potenziellen Fehler elegant zu behandeln und zu verhindern, dass unser Programm abstürzt. Dies ist eine häufige und wichtige Praxis beim Umgang mit Benutzereingaben oder Daten aus externen Quellen.

Zusammenfassung

In diesem Lab haben wir zunächst numerische Zeichenketten in Python definiert. Das sind Zeichenketten, die Zeichen enthalten, die als Zahlen (Ganzzahlen, Gleitkommazahlen usw.) interpretiert werden können. Wir haben ein Skript namens numeric_strings.py erstellt, um verschiedene Zeichenketten zu definieren und auszugeben, darunter Ganzzahlen, Dezimalzahlen und Zeichenketten mit nicht-numerischen Zeichen, um verschiedene Zeichenkettenformate zu veranschaulichen.

Als nächstes haben wir begonnen, die Methode isdigit() zu untersuchen, um zu prüfen, ob eine Zeichenkette nur Ziffern enthält, was auf eine nicht-negative Ganzzahl hinweist. Das Lab soll weiterhin zeigen, wie diese Methode zur Validierung von Zeichenketten verwendet wird.