Python String: Alles was du wissen musst!

    Avatarbild von Perica Glavas
    Perica Glavas

    veröffentlicht am: 24.08.2020
    zuletzt aktualisiert am: 02.02.2023

    Der Python String Datentyp im Überblick

    Der String ist einer der meist verwendeten Datentypen in der Programmierung. Die Definition sagt, dass ein String immer eine Sequenz, also Aneinanderreihung mehrerer Zeichen ist. Ganz einfach gesagt ist alles ein Python String, was in Anführungszeichen geschrieben wird.

    Der String in Python unterscheidet sich grundsätzlich nicht von dem aus anderen Sprachen. Das Arbeiten mit Strings kann dabei allerdings sehr kompliziert werden, wobei Python einige integrierte Funktionen bereitstellt, um den Aufwand zumindest zu verringern. Deshalb werden wir uns in diesem Kapitel mit dem Erstellen und Nutzen von Strings und den integrierten Funktionen des Strings in Python beschäftigen.

    Einen Python String deklarieren / erstellen

    Es gibt für uns drei Wege, um einen String in Python zu erstellen.
    Bei der ersten Methode nutzen wir einfach die Anführungszeichen.

    str_1 = "Hallo Welt!"

    Der zweite Weg ist ähnlich und wird über einfache Anführungszeichen ausgeführt.

    str_1 = 'Hallo Welt!'

    Zwischen den beiden Methoden gibt es grundsätzlich keinen Unterschied. Es könnte allerdings sein, dass wir Anführungszeichen im String haben wollen.

    str_1 = "Sag "Hallo" Welt!"

    Unser Ziel ist also, einen String zu erhalten, in dem wir weitere Anführungszeichen haben.

    Python String Deklarierung Fehlermeldung wegen doppelter Aufführungszeichen.

    Wir bekommen einen Fehler, weil wir nicht die gleichen Anführungszeichen in einem Ausdruck verwenden dürfen.

    str_1 = "Sag 'Hallo' Welt!"

    Jetzt sollte unser Vorhaben funktionieren.

    So können wir beide Anführungszeichen miteinander verbinden.

    Der dritte Weg, einen String zu definieren, ist jedoch grundsätzlich anders.

    str_1 = '''
    Sag
    Hallo
    Welt
    '''

    Einzelne Zeichen in einem Python String adressieren

    Wir können einzelne Zeichen eines Strings über den entsprechenden Index und eckige Klammern adressieren.

    str_1 = "Hallo Welt!"

    Nun können wir versuchen, das erste Zeichen zu adressieren.

    str_1[0]

    Wenn wir das Programm verwenden, erhalten wir das Zeichen an der ersten Stelle.

    Einzelnes Element eines Strings adressieren

    Wie mit dem ersten Zeichen, können wir jedes Zeichen im String adressieren. Allerdings muss sich der Index dabei in der Anzahl an Zeichen vom String befinden.

    str_1 = "Hallo Welt!"
    str_1[20]

    20 befindet sich nicht in der Menge der Zeichen des Strings.

    Fehlermeldung weil der Index überschritten ist

    Wir erhalten also einen Fehler. Das gleiche würden wir auch erhalten, wenn wir eine Komma-Zahl verwenden würden.

    Wir können relativ einfach das letzte Zeichen des Strings adressieren. Das ist besonders nützlich, wenn wir die Länge des Strings nicht genau kennen. Dafür nutzen wir einfach einen negativen Index.

    Um das letzte Zeichen zu erhalten, benutzen wir die -1.

    str_1 = "Hallo Welt!"
    str_1[-1]

    Wenn wir das vorletzte Zeichen erhalten wollen, nutzen wir die -2. So können wir die Zahl immer weiter reduzieren, um zum Anfang des Strings zu gelangen.

    Eine Teilmenge eines Python Strings adressieren

    Wenn wir nur eine Teilmenge des Strings haben möchten, können wir weiterhin die eckigen Klammern verwenden. Jetzt geben wir allerdings zwei Zahlen für den Index an, die wir mit einem Doppelpunkt voneinander trennen.

    str_1 = "Hallo Welt!"
    str_1[2: 8]

    Die Teilmenge bezeichnen wir als Substring. Der Substring wird von der 2. bis zur 7. Position gehen. Wir müssen beachten, dass das Ende immer einen Index weniger als die Angabe ist.

    Teilmenge eines Strings adressieren

    Über einen Python String iterieren

    Wir können mittels einer Schleife den ganzen String adressieren.

    str_1 = "Hallo Welt!"
    for ch in str_1:
    	print(ch)
    Das Python String in Kombination mit einer For-Schleife

    Einzelne Zeichen eines Strings verändern oder entfernen

    Von Natur aus können wir die einzelnen Zeichen weder löschen noch verändern.

    Strings in Python sind nicht änderbar. Wir werden also einen Fehler erhalten, wenn wir doch versuchen sollten, sie zu ändern.

    str_1 = "Hello World!"
    str_1[0] = 'M'

    Nun versuchen wir dem ersten Zeichen einen neuen Wert zuzuweisen. In diesem Fall erhalten wir eine Fehlermeldung.

    Fehlermeldung bei der Änderung eines Zeichens

    Des Weiteren können auch keine Zeichen aus einem String gelöscht werden. Wir können lediglich den ganzen String mit dem del-Befehl löschen.

    str_1 = "Hello World!"
    del str_1
    del-Befehl Fehlermeldung

    Die Python Str()-Methode

    Die str()-Methode wird von uns verwendet, um andere Datentypen in einen String umzuwandeln. Dafür übergeben wir diesen als Argument.

    str_1 = str(9999)

    9999 ist eigentlich eine Zahl.

    Die Python Str-Methode

    Wir könnten außerdem zwei weitere Argumente übergeben. Das erste legt die Umwandlung fest, während das zweite beschreibt, wie bei einer Fehlfunktion reagiert werden soll.

    Standardmäßig ist die Umwandlung in UTF-8 und die Fehlfunktionsangabe ist auf strict gesetzt.

    Mehrere Python Strings zusammenfügen

    In Python können wir auch mehrere Strings mittels des +-Operators aneinanderhängen.

    str_1 = "Hallo"
    str_2 = "Welt"
    str_3 = str_1 + str_2

    Str_3 wird also aus den beiden anderen Strings bestehen.

    Mehrere Python Strings mergen

    Wir sind dabei jedoch keineswegs nur auf zwei Strings begrenzt, sondern können beliebig viele Strings zusammenfügen.

    str_1 = "Sag"
    str_2 = "Hallo"
    str_3 = "Hi"
    str_4 = "Welt"
    str_5 = str_1 + str_2 + str_3 + str_4
    Mehrere Python Strings mergen

    Wir können auch den *-Operator verwenden, um einen String mehrmals anzuhängen.

    str_1 = "Hallo Welt!"
    str_2 = str_1 * 5

    Str_2 wird den str_1 also fünf Mal enthalten.

    Python Strings mit dem *-Operator zusammenfügen

    Prüfen, ob ein bestimmtes Zeichen in einem Python String vorhanden ist

    Wenn wir herausfinden wollen, ob ein Zeichen im String enthalten ist, können wir unter anderem eine Schleife verwenden.

    str_1 = "Hallo Welt!"
    for ch in str_1:
    	if ch == 'W':
    		print("'W' existiert")

    In der Schleife wird für jedes Zeichen überprüft, ob es sich um ein W handelt.

    Prüfen ob ein bestimmtes Zeichen in einem String enthalten ist.

    Der Prozess funktioniert zwar gut, dauert allerding lange. Python hat dafür den in- und not in-Operator, den wir nutzen können, um zu prüfen, ob das Zeichen im String enthalten ist.

    str_1 = "Hallo Welt!"
    'W' in str_1

    Der Operator gibt dabei einen Wahrheitswert, den sogenannten Boolean, zurück.

    Der in-Operator zum Prüfen ob ein Teilstring enthalten ist.

    Umgekehrt kann der not in-Operator verwendet werden. Auch er gibt einen Boolean zurück.

    str_1 = "Hallo Welt!"
    'W' not in str_1
    Der not in-Operator zum Prüfen ob ein Teilstring enthalten ist.

    Jetzt haben wir zwei Möglichkeiten kennengelernt, um einen String auf ein Zeichen zu prüfen.

    Die wichtigsten Python String-Methoden

    Wie am Anfang bereits erwähnt, gibt es zahlreiche eingebaute Methoden, um mit Strings zu arbeiten. Lasst uns deshalb einmal die wichtigsten anschauen.

    len()

    Die len()-Methode wird verwendet, um die Länge eines Strings zu erhalten.

    str_1 = "Hallo Welt!"
    len(str_1)
    Mit der len()-Methode die Länge eines Strings ermitteln

    Es wird die Länge des übergebenen Strings ausgegeben.
    Dabei werden alle Zeichen gezählt, auch die Leerzeichen.

    count()

    Die count()-Methode wird verwendet, um die Häufigkeit eines bestimmten Zeichens oder einer Zeichenfolge im String zu ermitteln.

    str_1 = "Hallo Welt!"
    c = str_1.count('o')

    Die count()-Methode wird dabei auf einem String aufgerufen und die gesuchte Zeichenfolge als Argument übergeben.

    Mit der count-Methode prüfen wie oft eine Zeichenfolge vorkommt.

    Es gilt allerdings zu beachten, dass die Methode zwischen Groß- und Kleinschreibung unterscheidet.

    str_1 = "Hallo Welt!"
    c = str_1.count('O')

    In diesem Fall übergeben wir ein O als Argument.

    Einfache Überprüfung der Häufigkeit einer bestimmtem Zeichenfolge mit count()

    Wir können die Methode auch zum Finden von Zeichenfolgen nutzen.

    Die Häufigkeit einer Zeichenfolge mit count ermitteln.

    find()

    Mit der find()-Methode können wir die Position einer Zeichenfolge im String ermitteln.

    str_1 = "Hallo Welt!"
    i = str_1.find('W')
    Mit der find-Methode die Position eines Zeichens zu ermitteln.

    Wie die count()-Methode unterscheidet auch die find()-Methode zwischen Groß- und Kleinschreibung.

    -1 als Rückgabewert da das Zeichen nicht im String enthalten ist.

    Wir erhalten eine -1, weil sich kein w im String befindet.

    Wir können mit der find()-Methode lediglich das erste Vorkommen ermitteln. Alle weiteren Vorkommen werden von der Funktion ignoriert.

    str_1 = "Hallo Welt!"
    i = str_1.find('l')
    Nur das erste Zeichen wird dargestellt.

    Obwohl das l öfter als einmal vorhanden ist, wird nur die erste Position zurückgegeben.

    replace()

    Mit der replace()-Methode können wir eine angegebene Zeichenfolge durch eine andere ersetzen.

    str_1 = "Hallo Welt"
    str_2 = str_1.replace('W', 'K')

    Das erste Argument ist die Zeichenfolge, die ersetzt werden soll. Das zweite ist die Zeichenfolge, die stattdessen eingesetzt wird.

    Mit der replace-Methode kann man einzelne Buchstaben ersetzen.

    Die replace()-Funktion gibt dabei einen neuen String zurück. Wie bereits erwähnt, können wir statt einzelnen Zeichen auch ganze Reihenfolgen ersetzen.

    str_1 = "Hallo Welt"
    str_2 = str_1.replace("Hallo", "Hi")

    Die Länge der beiden Zeichenfolgen muss dabei nicht die gleich sein.

    split()

    Mit der split()-Methode können wir in Python die Strings in Listen zerteilen.

    str_1 = "Hallo Welt!"
    list_1 = str_1.split()

    Wir müssen keinen Parameter übergeben. Standardmäßig ist das Leerzeichen als Trennzeichen eingestellt.

    Mit der split-Methode können wir Python Strings aufteilen.

    Wir können aber auch selbst ein bestimmtes Trennzeichen festlegen.

    str_1 = "Hallo Welt!"
    list_1 = str_1.split('o')

    Jetzt wird der String bei jedem o getrennt.

    Zudem können wir dabei einen eigenen Seperator der Funktion übergeben.

    join()

    Die join()-Funktion können wir nutzen um aus Sammlungen ( beispielsweise list, tuple) einen String zu formen.

    list_1 = ['H', 'a', 'l', 'l', 'o', ' ', 'W', 'e',  'l', 't', '!']
    sep = ''
    str_1 = sep.join(list_1)

    Für die join()-Funktion benötigen wir zwei Dinge. Zum einen benötigen wir ein Trennzeichen, mit welchem die einzelnen Teile zusammengefügt werden sollen. In unserem Fall ist das Zeichen leer, damit alle Buchstaben direkt zusammengefügt werden. Außerdem wird eine Liste als Argument übergeben.

    Mit der join-Methode können wir mehrere Zeichen zu einem String zusammenfügen.

    reversed()

    Die reversed()-Funktion nutzen wir, um einen String umzudrehen.

    str_1 = "Hallo Welt!"
    list_1 = list(reversed(str_1))

    Die Methode gibt allerdings keinen String zurück. Wir müssen die list()-Methode nutzen, um aus dem umgedrehten String eine Liste zu machen.

    Mit der reversed-Methode können wir die Reihenfolge eines Strings spiegeln.

    sorted()

    Die sorted()-Funktion erzeugt einen sortierten String.

    str_1 = "Hallo Welt!"
    list_1 = sorted(str_1)

    Die sorted()-Funktion gibt eine Liste mit den sortierten Zeichen aus.

    Einen Python String mit der sorted-Methode sortieren.

    Python String – Zusammenfassung

    Jetzt haben wir sehr viel über Strings in Python gelernt. Zunächst haben wir die verschiedenen Möglichkeiten zum Erstellen betrachtet. Außerdem haben wir besprochen, wie wir einzelne Zeichen adressieren können. Die Strings bzw. Zeichen werden dabei über einen Index angesprochen. Außerdem können wir bestimmte Zeichenfolgen adressieren. Mit negativen Werten als Index konnten wir rückwärts adressieren. Mittels einer Schleife konnten wir auch alle Zeichen ausgeben lassen.

    Strings in Python sind grundsätzlich nicht veränderbar. Wir können weder Zeichen löschen, noch können wir diese verändern, allerdings konnten wir mittels des +- und *-Operators mehrere Strings aneinanderhängen.

    Mittels der in- und not in-Operation konnten wir auch feststellen ob sich Zeichen oder Zeichenfolgen im String befinden.

    Wir haben außerdem zahlreiche eingebaute Funktionen behandelt. Diese Methoden sind für uns besonders wichtig, da wir mit ihnen sowohl Zeit und Aufwand als auch unsere Menge an Quellcode reduzieren können.

    😩 Gelangweilt von den Udemy & YouTube-Tutorials?!

    Lerne spielerisch Python und komme deiner gutbezahlten (und an der 🌴 liegenden) Traumkarriere einen Schritt weiter.

    TP Star TP Star TP Star TP Star TP Star

    "Für Leute die gerne Python oder Java lernen wollen ist Codegree klasse. Ist nicht wie bei anderen Konkurrenten auf Videokursen aufgebaut..."

    - Lennart Sparbier

    100% kostenlos registrieren · keine Kreditkarte notwendig

    👋 Wir warten bereits auf dich!

    Lerne das, was du wirklich brauchst.

    Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.

    Logo von Python
    Logo von PyTorch
    Logo von Pandas
    Logo von Matplotlib
    Logo von Java
    Logo von NumPy
    Mehr erfahren

    100% kostenlos registrieren · keine Zahlungsdaten notwendig