Python string contains zum finden von teilstrings

Python string contains nutzt den in-Operator, um zu prüfen, ob ein Teilstring im Text vorkommt. Nutze es, wenn du einen schnellen Ja/Nein-Test brauchst, um Logik zu verzweigen, Eingaben zu validieren oder Nachrichten zu filtern. Es bietet eine einfache, lesbare Möglichkeit zu testen, ob Text einen Teilstring enthält.

Python String Contains-Beispiel Für Text-Matching

Ausgabe:

Die Ausgabe erscheint hier...

Ausgabe:

Sendungsverfolgung senden

So Funktioniert Dieses Beispiel

  • Der String status enthält eine kurze Statusmeldung.
  • Der Ausdruck "versendet" in status führt einen Teilstring-Test aus und gibt True zurück.
  • Da die Bedingung wahr ist, wird print ausgeführt.
  • Die Ausgabe zeigt, dass die Aktion nur dann ausgelöst wird, wenn das Schlüsselwort vorhanden ist.

Häufige Fehler

Fehler 1: Annehmen, dass die Prüfung nicht zwischen Groß- und Kleinschreibung unterscheidet.

subject = "Bestellung Versendet"
if "versendet" in subject:
    print("Sendungsverfolgung senden")
subject = "Bestellung Versendet"
if "versendet" in subject.casefold():
    print("Sendungsverfolgung senden")

Warum das passiert: in vergleicht Zeichen exakt, daher muss die Groß-/Kleinschreibung übereinstimmen. Normalisiere beide Strings (oft mit casefold()), wenn du einen case-insensitiven Check willst.

Fehler 2: find() in einer Wahrheitsprüfung verwenden.

message = "promo"
if message.find("pro"):
    print("markieren")
message = "promo"
if "pro" in message:
    print("markieren")

Warum das passiert: find() gibt den Index zurück, und Index 0 ist falsy, selbst wenn der Teilstring gefunden wurde. Nutze in für einen booleschen Contains-Check oder vergleiche find() mit -1, wenn du den Index brauchst.

Fehler 3: Vergessen, dass leere Strings immer matchen.

needle = ""
text = "rechnung 123"
if needle in text:
    print("treffer")
needle = ""
text = "rechnung 123"
if needle and needle in text:
    print("treffer")

Warum das passiert: Python behandelt den leeren String als Teilstring jedes Strings. Schütze dich vor leerer Eingabe, wenn sie “kein Treffer” bedeuten soll.

string contains vs find: was nutzen?

BedarfNutze
Nur eine Ja/Nein-Antwortneedle in text
Die Position des Trefferstext.find(needle)
Einen Fehler, wenn nicht gefundentext.index(needle)

Nutze in für den schnellsten und klarsten Membership-Test. Nutze find() oder index() nur, wenn du zusätzlich die Trefferposition brauchst oder ein Fehlschlag einen Fehler auslösen soll.

Performance-Überlegungen

Ein Contains-Check durchsucht den Text linear, daher ist jeder in-Test O(n) in der Länge des Textes. Für wiederholte case-insensitive Checks normalisiere den Text einmal (z. B. text = text.casefold()) und verwende ihn wieder, um zusätzliche Arbeit zu vermeiden. Wenn du viele verschiedene Muster in sehr großen Strings suchen musst, ziehe spezialisiertere Suche oder Regex nur dann in Betracht, wenn das Muster es erfordert.

Wann du Python string contains verwenden solltest

  • Du brauchst einen schnellen Teilstring-Test, um zu entscheiden, welche Logik verzweigt wird.
  • Du validierst Eingaben, indem du nach erforderlichen Schlüsselwörtern oder Markern suchst.
  • Du möchtest den klarsten booleschen Test statt eines Index-Ergebnisses.
  • Du brauchst keine Wildcards oder komplexen Muster; dafür nutze re.
  • Du brauchst nicht die Trefferposition; wenn doch, nutze find() oder index().