So prüfen Sie, ob eine Zeichenkette in Python Sonderzeichen enthält

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 in Python prüfen können, ob eine Zeichenkette (string) Sonderzeichen enthält. Dies umfasst die Definition, was ein Sonderzeichen ist, und die Verwendung verschiedener Methoden, um deren Vorhandensein in einer Zeichenkette zu erkennen.

Das Lab führt Sie durch die Definition von Sonderzeichen mithilfe des string-Moduls und benutzerdefinierter Definitionen. Anschließend erkunden Sie Methoden wie reguläre Ausdrücke (regular expressions) und die str.isalnum()-Funktion, um Zeichenketten zu identifizieren, die diese Sonderzeichen enthalten. Am Ende dieses Labs verfügen Sie über das Wissen, um Sonderzeichen in Ihren Python-Programmen effektiv zu verarbeiten.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/AdvancedTopicsGroup(["Advanced Topics"]) python/BasicConceptsGroup -.-> python/strings("Strings") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/FunctionsGroup -.-> python/function_definition("Function Definition") python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") python/ModulesandPackagesGroup -.-> python/standard_libraries("Common Standard Libraries") python/AdvancedTopicsGroup -.-> python/regular_expressions("Regular Expressions") subgraph Lab Skills python/strings -.-> lab-559570{{"So prüfen Sie, ob eine Zeichenkette in Python Sonderzeichen enthält"}} python/conditional_statements -.-> lab-559570{{"So prüfen Sie, ob eine Zeichenkette in Python Sonderzeichen enthält"}} python/function_definition -.-> lab-559570{{"So prüfen Sie, ob eine Zeichenkette in Python Sonderzeichen enthält"}} python/importing_modules -.-> lab-559570{{"So prüfen Sie, ob eine Zeichenkette in Python Sonderzeichen enthält"}} python/standard_libraries -.-> lab-559570{{"So prüfen Sie, ob eine Zeichenkette in Python Sonderzeichen enthält"}} python/regular_expressions -.-> lab-559570{{"So prüfen Sie, ob eine Zeichenkette in Python Sonderzeichen enthält"}} end

Definition von Sonderzeichen

In diesem Schritt lernen Sie, wie Sie in Python Sonderzeichen definieren können. Sonderzeichen sind Zeichen, die nicht alphanumerisch (Buchstaben oder Zahlen) sind. Dazu gehören Symbole wie Satzzeichen, Leerzeichen und andere nicht-standardmäßige Zeichen. Das Identifizieren und Verarbeiten dieser Zeichen ist für Aufgaben wie Datenbereinigung, Validierung und Textverarbeitung von entscheidender Bedeutung.

Zunächst erstellen wir ein Python-Skript namens define_special_characters.py in Ihrem ~/project-Verzeichnis mit dem VS Code-Editor.

## Content of define_special_characters.py
import string

special_characters = string.punctuation
print("Special characters:", special_characters)

Hier ist, was dieser Code macht:

  1. import string: Diese Zeile importiert das string-Modul, das eine Sammlung von Zeichenkettenkonstanten bereitstellt, einschließlich einer vordefinierten Zeichenkette mit üblichen Satzzeichen.
  2. special_characters = string.punctuation: Diese Zeile weist die Zeichenkette der Satzzeichen aus string.punctuation der Variablen special_characters zu.
  3. print("Special characters:", special_characters): Diese Zeile gibt den Wert der Variablen special_characters zusammen mit einer beschreibenden Bezeichnung in die Konsole aus.

Jetzt führen wir das Skript aus. Öffnen Sie Ihr Terminal und geben Sie den folgenden Befehl ein:

python define_special_characters.py

Sie sollten die folgende Ausgabe sehen:

Special characters: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

Diese Ausgabe zeigt die Zeichenkette der Sonderzeichen, die in der Konstanten string.punctuation definiert ist.

Sie können auch Ihre eigene Menge von Sonderzeichen definieren. Beispielsweise ändern wir das Skript, um Leerzeichen und einige zusätzliche Symbole einzubeziehen.

Öffnen Sie define_special_characters.py in VS Code und ändern Sie es wie folgt:

## Modified content of define_special_characters.py
special_characters = "!@#$%^&*()_+=-`~[]\{}|;':\",./<>?" + " "
print("Special characters:", special_characters)

In diesem geänderten Skript haben wir eine Zeichenkette erstellt, die eine Kombination von Symbolen und ein Leerzeichen enthält.

Führen Sie das Skript erneut aus:

python define_special_characters.py

Sie sollten die folgende Ausgabe sehen:

Special characters: !@#$%^&*()_+=-`~[]{}|;':",./<>?

Diese Ausgabe zeigt die benutzerdefinierte Menge von Sonderzeichen, die Sie definiert haben.

Das Verständnis, wie man Sonderzeichen definiert und identifiziert, ist eine grundlegende Fähigkeit in der Python-Programmierung. In den nächsten Schritten lernen Sie, wie Sie reguläre Ausdrücke (regular expressions) und die isalnum()-Methode verwenden können, um effektiver mit Sonderzeichen zu arbeiten.

Verwendung von regulären Ausdrücken

In diesem Schritt lernen Sie, wie Sie in Python reguläre Ausdrücke (regular expressions) verwenden können, um Sonderzeichen zu identifizieren. Reguläre Ausdrücke sind leistungsstarke Werkzeuge für die Mustererkennung in Zeichenketten.

Zunächst erstellen wir ein Python-Skript namens regex_special_characters.py in Ihrem ~/project-Verzeichnis mit dem VS Code-Editor.

## Content of regex_special_characters.py
import re

def find_special_characters(text):
    special_characters = re.findall(r"[^a-zA-Z0-9\s]", text)
    return special_characters

text = "Hello! This is a test string with some special characters like @, #, and $."
special_chars = find_special_characters(text)

print("Special characters found:", special_chars)

Hier ist, was dieser Code macht:

  1. import re: Diese Zeile importiert das re-Modul, das Operationen mit regulären Ausdrücken bereitstellt.
  2. def find_special_characters(text):: Dies definiert eine Funktion, die eine Zeichenkette als Eingabe nimmt und alle Sonderzeichen darin findet.
  3. special_characters = re.findall(r"[^a-zA-Z0-9\s]", text): Diese Zeile verwendet die re.findall()-Funktion, um alle Zeichen in der Eingabezeichenkette zu finden, die nicht alphanumerisch (a-z, A-Z, 0-9) oder Leerzeichen (\s) sind. Das [^...] ist eine negierte Zeichenklasse, was bedeutet, dass es jedes Zeichen nicht in der angegebenen Menge übereinstimmt.
  4. return special_characters: Diese Zeile gibt eine Liste der gefundenen Sonderzeichen zurück.
  5. Die verbleibenden Zeilen definieren eine Beispielzeichenkette, rufen die Funktion auf, um Sonderzeichen darin zu finden, und geben das Ergebnis aus.

Jetzt führen wir das Skript aus. Öffnen Sie Ihr Terminal und geben Sie den folgenden Befehl ein:

python regex_special_characters.py

Sie sollten die folgende Ausgabe sehen:

Special characters found: ['!', '@', ',', '#', '$', '.']

Diese Ausgabe zeigt die Liste der Sonderzeichen, die in der Eingabezeichenkette mit dem regulären Ausdruck gefunden wurden.

Ändern wir das Skript, um einen anderen regulären Ausdruck zu verwenden, der nur Satzzeichen übereinstimmt.

Öffnen Sie regex_special_characters.py in VS Code und ändern Sie es wie folgt:

## Modified content of regex_special_characters.py
import re
import string

def find_punctuation_characters(text):
    punctuation_chars = re.findall(r"[" + string.punctuation + "]", text)
    return punctuation_chars

text = "Hello! This is a test string with some punctuation like ., ?, and !."
punctuation = find_punctuation_characters(text)

print("Punctuation characters found:", punctuation)

In diesem geänderten Skript haben wir string.punctuation verwendet, um die Menge der Satzzeichen zu definieren, die übereinstimmen sollen.

Führen Sie das Skript erneut aus:

python regex_special_characters.py

Sie sollten die folgende Ausgabe sehen:

Punctuation characters found: ['!', '.', '?', '!']

Diese Ausgabe zeigt die Liste der Satzzeichen, die in der Eingabezeichenkette mit dem regulären Ausdruck und der Konstanten string.punctuation gefunden wurden.

Die Verwendung von regulären Ausdrücken bietet eine flexible und leistungsstarke Möglichkeit, Sonderzeichen aus Zeichenketten in Python zu identifizieren und zu extrahieren.

Prüfung mit str.isalnum()

In diesem Schritt lernen Sie, wie Sie die str.isalnum()-Methode in Python verwenden können, um zu prüfen, ob ein Zeichen alphanumerisch ist (d. h. ein Buchstabe oder eine Zahl). Diese Methode ist eine einfache und effiziente Möglichkeit, Sonderzeichen zu identifizieren, indem geprüft wird, ob ein Zeichen nicht alphanumerisch ist.

Zunächst erstellen wir ein Python-Skript namens isalnum_check.py in Ihrem ~/project-Verzeichnis mit dem VS Code-Editor.

## Content of isalnum_check.py
def check_special_character(char):
    if not char.isalnum():
        return True
    else:
        return False

test_characters = ['a', '1', '!', ' ']

for char in test_characters:
    if check_special_character(char):
        print(f"'{char}' is a special character.")
    else:
        print(f"'{char}' is an alphanumeric character.")

Hier ist, was dieser Code macht:

  1. def check_special_character(char):: Dies definiert eine Funktion, die ein einzelnes Zeichen als Eingabe nimmt.
  2. if not char.isalnum():: Diese Zeile prüft, ob das Zeichen nicht alphanumerisch ist, indem die isalnum()-Methode verwendet wird. Die isalnum()-Methode gibt True zurück, wenn das Zeichen ein Buchstabe oder eine Zahl ist, und False sonst. Das not-Schlüsselwort negiert das Ergebnis, sodass die Bedingung True ist, wenn das Zeichen nicht alphanumerisch ist.
  3. Die verbleibenden Zeilen definieren eine Liste von Testzeichen und durchlaufen sie in einer Schleife, rufen die Funktion auf, um zu prüfen, ob jedes Zeichen ein Sonderzeichen ist, und geben das Ergebnis aus.

Jetzt führen wir das Skript aus. Öffnen Sie Ihr Terminal und geben Sie den folgenden Befehl ein:

python isalnum_check.py

Sie sollten die folgende Ausgabe sehen:

'a' is an alphanumeric character.
'1' is an alphanumeric character.
'!' is a special character.
' ' is a special character.

Diese Ausgabe zeigt das Ergebnis der Prüfung jedes Zeichens in der Liste mit der isalnum()-Methode.

Ändern wir das Skript, um eine Zeichenkette auf Sonderzeichen zu prüfen.

Öffnen Sie isalnum_check.py in VS Code und ändern Sie es wie folgt:

## Modified content of isalnum_check.py
def find_special_characters(text):
    special_chars = []
    for char in text:
        if not char.isalnum() and not char.isspace():
            special_chars.append(char)
    return special_chars

test_string = "Hello! This is a test string with some special characters like @, #, and $."
special_characters = find_special_characters(test_string)

print("Special characters found:", special_characters)

In diesem geänderten Skript haben wir eine Funktion definiert, die eine Zeichenkette durchläuft und jedes Zeichen prüft, ob es nicht alphanumerisch und kein Leerzeichen ist.

Führen Sie das Skript erneut aus:

python isalnum_check.py

Sie sollten die folgende Ausgabe sehen:

Special characters found: ['!', '@', ',', '#', '$', '.']

Diese Ausgabe zeigt die Liste der Sonderzeichen, die in der Eingabezeichenkette mit der isalnum()-Methode gefunden wurden.

Die Verwendung der isalnum()-Methode bietet eine einfache und effiziente Möglichkeit, Sonderzeichen in Python zu identifizieren.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie in Python Sonderzeichen definieren können. Dazu gehörte das Importieren des string-Moduls und die Verwendung der Konstanten string.punctuation, um auf eine vordefinierte Zeichenkette mit gängigen Satzzeichen zuzugreifen. Sie haben auch untersucht, wie Sie Ihre eigene benutzerdefinierte Menge von Sonderzeichen definieren können, indem Sie bestimmte Symbole und Leerzeichen zu einer Zeichenkette zusammenfügen.

Das Lab hat gezeigt, wie Sie diese definierten Sonderzeichenmengen zur Überprüfung in die Konsole ausgeben können. Dieser Prozess ist für Aufgaben wie Datenbereinigung, Validierung und Textverarbeitung von entscheidender Bedeutung, bei denen die Identifizierung und Verarbeitung von nicht-alphanumerischen Zeichen unerlässlich ist.