9 Nützliche Methoden für die Arbeit mit Strings in Python

9 Nützliche Methoden für die Arbeit mit Strings in Python | Python Tutorial

Mit Strings können wir in Python Text oder Zeichenketten speichern. Strings können wir beispielsweise so definieren:

name = 'Johannes'
stadt = 'München'

In dieser Form können wir den String dann weiterverwenden, zum Beispiel in einer print()-Funktion, um etwas auf die Konsole auszugeben.

name = 'Johannes'
stadt = 'München'

print(name + ' ist aktuell in ' + stadt)
# Ausgabe: Johannes ist aktuell in München

Auch das ist aber natürlich noch ziemlich unspektakulär. In diesem Artikel stelle ich Dir deshalb 9 der nützlichsten und wichtigsten Funktionen und Methoden rund um Strings in Python vor. Das sind dabei die folgenden:

Für jede Funktion oder Methode gibt es dabei ein einfaches Beispiel. Und wenn Du nicht so viel lesen möchtest, kannst du einfach das Video am Beginn des Artikels anschauen, dort wird alles erklärt. Bei der Gelegenheit schau' doch auch gerne auf unserem YouTube-Kanal vorbei. Dort findest du jede Menge weiterer Tutorials zu Python, aber auch anderen Programmiersprachen wie Java, JavaScript, etc.

Die Länge eines Strings mit der len()-Funktion in Python bestimmen

Die len()-Funktion ist als einzige in dieser Liste keine Methode von Strings selbst, sondern eine eingebaute Funktion in Python. Das bedeutet, wir können sie einfach so verwenden wie eine print()-Funktion und den String innerhalb der runden Klammern übergeben. Den Unterschied sehen wir dann gleich deutlich beim nächsten Beispiel.

Mit der len()-Funktion kann ich herausfinden, wieviele Zeichen in einem String enthalten sind, also einfach gesagt: Wie lang ist mein String? Sehen wir uns ein einfaches Beispiel an.

name = 'Johannes'
laenge = len(name)
print(laenge)

# Ausgabe: 8

Der Code ist einfach erklärt. Zunächst wir eine Variable name definiert, die den String Johannes zugewiesen bekommt. In der nächsten Zeile definieren wir eine Variable laenge. Hier verwenden wir dann die len()-Funktion und übergeben den gerade eben definierten String. Schließlich geben wir den Wert von laenge aus und erhalten korrekterweise 8.

Zeichen in einem String in Python mit der find()-Methode finden

Im Gegensatz zu len(), einer eingebauten Funktion von Python, ist find() eine Methode des Datentyps String. Das erkennt man ganz leicht daran, dass wir nicht einfach find() schreiben und etwas übergeben, sondern find() mit einem String selbst aufrufen. Dazu verwenden wir in Python die Punktsyntax.

Ich schreibe also meinen String – entweder direkt oder als Variable – und dann direkt, ohne Leerzeichen, einen Punkt. Je nachdem, was an Editor oder IDE verwendet wird, werden hier dann schon jede Menge Methoden vorgeschlagen. Das sieht so aus:

Methode-Vorschläge in Replit

Ich kann dann entweder die find()-Methode suchen und auswählen oder ganz normal weitertippen. Innerhalb der runden Klammern übergebe ich dann das, wonach ich suchen möchte in Anführungszeichen, also als String.

name = 'Johannes'
print(name.find('o'))

# Ausgabe: 1

Hier würden wir im String Johannes nach einem kleinen o suchen. Python liefert als Antwort in der Konsole dann das Ergebnis 1.

Was bedeutet das?

Python nummeriert die Zeichen unseres Strings von 0 ausgehend durch. Der Name Johannes wird also so interpretiert:

0 - J
1 - o
2 - h
3 - a
4 - n
5 - n
6 - e
7 - s

Die find()-Methode sucht jetzt nach dem ersten kleinen o in diesem String und findet dieses an zweiter Stelle, also beim Index 1 für die Programmiersprache.

Wenn ich also beispielsweise nach einem kleinen n suche, dann bekommen ich nur die Stelle des Ersten zurück.

name = 'Johannes'
print(name.find('n'))

# Ausgabe: 4

Wenn ich nach etwas suche, das in diesem String gar nicht anhalten ist, gibt es keinen Fehler. Stattdessen liefert die find()-Methode dann -1 als Ergebnis.

Die Groß- und Kleinschreibung wird von der find()-Methode beachtet, das bedeutet, wenn ich nach einem kleinen j suche, dann ist dieser Buchstabe hier nicht enthalten.

name = 'Johannes'
print(name.find('j'))

# Ausgabe: -1

Korrigiere ich das auf ein großes J, dann ist das natürlich ein Teil meines Strings und ich bekomme als Ergebnis 0.

name = 'Johannes'
print(name.find('J'))

# Ausgabe: 0

Man muss aber nicht immer nur nach einem einzelnen Zeichen suchen. Ich kann den String im Prinzip beliebig verlängern. Solange genau diese Kombination enthalten ist, bekomme ich ein Ergebnis.

name = 'Johannes'
print(name.find('oha'))

# Ausgabe: 1

Hier wird dann wieder die Stelle oder der Index des ersten enthaltenen Zeichens zurückgegeben. Die Suche nach oha liefert hier also dasselbe Ergebnis wie eine Suche nur nach o.

Den Anfangsbuchstaben eines Strings in Python mit der capitalize()-Methode groß schreiben

Auch capitalize() ist eine String-Methode wie find(), genau wie alle weiteren Methoden, die jetzt hier noch folgen. Mit der capitalize()-Methode in Python können wir den ersten Buchstaben eines Strings großschreiben lassen. Allerdings wirklich nur den allerersten Buchstaben, nicht etwa den Anfangsbuchstaben jedes Worts im String.

name = 'johannes'
satz = 'hallo, das ist ein satz mit mehreren wörtern'

print(capitalize(name))
# Ausgabe: Johannes

print(capitalize(satz))
# Ausgabe: Hallo, das ist ein satz mit mehreren wörtern

Wichtig: Die capitalize()-Methode verändert den ursprünglichen String NICHT

Wenn mit einem String die capitalize()-Methode benutzt wird, dann erzeugt die Methode einen temporären, neuen String, bei dem der erste Buchstabe groß geschrieben wird. Das verändert den ursprünglichen String nicht. Ich kann das Ergebnis der Methode aber natürlich einer Variablen zuweisen und weiterverwenden.

Das liegt daran, dass Strings in Python "immutable" sind, das bedeutet unveränderbar. Wenn eine Methode einen String als doch verändert, dann muss eine Kopie erstellt werden und dieser neue String beinhaltet die Veränderung, während der alte String unverändert bleibt. Im Beispiel:

name = 'johannes'
großerName = name.capitalize()

print(name)
# Ausgabe: johannes (der String wurde nicht geändert)

print(großerName)
# Ausgabe: Johannes (das ist der neue String, der von capitalize() erzeugt wurde)

Dieses Prinzip gilt aufgrund der Unveränderbarkeit von Strings in Python auch für alle folgenden Methoden, die etwas am String verändern.

Mit der upper()-Methode Strings in Python komplett groß schreiben

Die nächsten beiden Methoden sind im Prinzip schnell erklärt und betreffen die Groß- und Kleinschreibung von Strings. Anders als bei der capitalize()-Methode geht es hier allerdings nicht um ein Zeichen, sondern den kompletten String.

Mit der upper()-Methode werden alle Zeichen des Strings in Großbuchstaben umgewandelt. Ein einfaches Beispiel:

aussage = 'mir reicht es. ich gehe!'
print(aussage.upper())

# Ausgabe: MIR REICHT ES. ICH GEHE!

Mit der lower()-Methode Strings in Python komplett klein schreiben

Komplett analog zur upper()-Methode für Strings gibt es in Python auch die lower()-Methode. Man kann es wahrscheinlich erraten: Hier wird der komplette String in Kleinbuchstaben umgewandelt. Auch hierzu ein kurzes Beispiel:

aussage = 'Hier sollte man lieber flüstern. Das ist eine Bücherei.'
print(aussage.lower())

# Ausgabe: hier sollte man lieber flüstern. das ist eine bücherei

Zeichen in einem Python String zählen mit der count()-Methode

Jetzt denkt man vielleicht erst einmal: Moment – das hatten wir doch schon. Wir haben doch die Länge eines Strings mit der len()-Funktion bekommen? Das ist richtig, aber die count()-Methode kann ein bisschen mehr.

Wir übergeben hier nämlich einen String und wollen dann wissen, wie oft das Ganze in einem anderen String enthalten ist. Machen wir ein einfaches Beispiel:

name = 'Johannes'
anzahl = name.count('n')
print(anzahl)

# Ausgabe: 2

count() zählt also nicht die komplette Länge des Strings, sondern wie oft etwas in diesem String vorkommt. In diesem Sinne ist die Methode sogar fast ähnlicher zur find()-Methode, nur dass wir hier eben nicht schauen an welcher Stelle etwas steht, sondern wie oft es vorkommt.

Wenn der gesuchte String nicht enthalten ist, gibt die count()-Methode schlüssigerweise einfach 0 zurück.

name = 'Johannes'
anzahl = name.count('y')
print(anzahl)

# Ausgabe: 0

Genau wie bei der find()-Methode können wir hier auch mehr als einen Buchstaben übergeben und dann sucht Python nach dem kompletten String.

name = 'Johannes'
anzahl = name.count('hannes')
print(anzahl)

# Ausgabe: 1

Auch die count()-Methode achtet dabei auf die Groß- und Kleinschreibung, würde man hier also nach "Hannes" suchen, wäre das Ergebnis 0.

Zeichen in einem Python String ersetzen mit der replace()-Methode

Die replace()-Methode erlaubt es uns, bestimmte Teile eines Strings in Python zu ersetzen. Und mit Ersetzen meine ich natürlich wieder eigentlich eine Kopie zu erstellen, in der die entsprechenden Stellen ausgetauscht sind.

Im Gegensatz zu unseren anderen Methoden bis hierhin, benötigen wir für die replace()-Methode zwei Argumente. Einmal das, was wir ersetzen wollen und einmal das, womit ersetzt werden soll. Ein einfaches Beispiel:

name = 'Johannes'
neuerName = name.replace('hannes','achim')
print(neuerName)

# Ausgabe: Joachim

Man sieht direkt: Beide Strings müssen nicht gleich lang sein. In diesem Fall werden 6 Zeichen (hannes) durch 5 Zeichen (achim) ersetzt. Voraussetzung ist natürlich, dass das erste Argument überhaupt enthalten ist.

Sollte das nicht der Fall sein, dann ändert Python den String gar nicht. Das kann leicht zu Verwirrung führen, vor allem dann, wenn man vielleicht nur nicht auf die Groß-/Kleinschreibung geachtet hat, wie in diesem Beispiel:

name = 'Johannes'
neuerName = name.replace('Hannes','achim')
print(neuerName)

# Ausgabe: Johannes

Hannes mit einem großen H ist in der Variablen name nicht enthalten. Daher ändert Python nichts und auch die Variable neuerName enthält einfach den originalen String Johannes.

Mit der isdigit()-Methode für Strings in Python prüfen, ob diese nur Zahlen enthalten

Wenn wir mit einem String in Python die isdigit()-Methode aufrufen, dann prüft diese, ob in dem String nur Zahlen enthalten sind. Ist das der Fall wird True zurückgegeben, ansonsten False. Hier sind einige Beispiele:

string1 = '123'
print(string1.isdigit())
# Ausgabe: True

string2 = 'Hallo'
print(string2.isdigit())
# Ausgabe: False

string3 = '12 Personen'
print(string3.isdigit())
# Ausgabe: False

Wichtig zu beachten ist, dass die isdigit()-Methode nicht überprüft, ob der String eine Zahl enthält, also Int oder Float, die man entsprechend als Zahl umwandeln könnte, sondern wirklich nur, ob jedes Zeichen des Strings eine Zahl ist.

Das bedeutet vor allem, dass für alle Floats, die wir in einen String schreiben False zurückgegeben wird, denn hier haben wir mit dem Punkt für die Dezimalzahl mindestens ein Zeichen, das keine Zahl ist.

kommazahl = 12.3
print(kommazahl.isdigit())
# Ausgabe: False

Mit der isalpha()-Methode für Strings in Python prüfen, ob diese nur Buchstaben enthalten

Analog zur isdigit()-Methode gibt es für Strings in Python noch die isalpha()-Methode. Diese prüft, ob der String nur Buchstaben enthält. Ist das der Fall wird True zurückgegeben, ansonsten False. Hier sind einige Beispiele:

string1 = 'Hallo'
print(string1.isalpha())
# Ausgabe: True

string2 = 'Hallo, Welt'
print(string2.isalpha())
# Ausgabe: False

string3 = '12'
print(string3.isalpha())
# Ausgabe: False

Auch bei der Variablen string2 wird hier False zurückgegeben, denn es ist ein Komma enthalten, das bedeutet ein Zeichen, das kein Buchstabe ist. Aber auch ein Leerzeichen würde schon reichen, denn auch dieses Zeichen ist kein Buchstabe, ebenso Sonderzeichen wie beispielsweise € oder $.

string1 = 'Hundert€'
print(string1.isalpha())
# Ausgabe: False

string2 = 'Hallo Welt'
print(string2.isalpha())
# Ausgabe: False

Die isalpha()-Methode gibt also wirklich nur dann True zurück, wenn ausnahmslos alle Zeichen des Strings Buchstaben sind, keine Zahlen, keine Sonderzeichen, keine Leerzeichen erlaubt.

Das war’s auch schon!

9 der wichtigsten und nützlichsten Funktionen und Methoden für Strings in Python. Wenn Du etwas Neues gelernt hast und dir der Artikel gefallen hat, dann kannst Du uns enorm weiterhelfen, indem du den Artikel teilst, unseren YouTube Kanal abonnierst und Freund:innen, Kolleg:innen und allen, die es nicht wissen wollen von uns erzählst!

Vielen Dank!