veröffentlicht am: 24.08.2020 zuletzt aktualisiert am: 02.02.2023
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.
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.
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 '''
Wir können einzelne Zeichen eines Strings über den entsprechenden Index und eckige Klammern adressieren.
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.
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.
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.
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.
Wir können mittels einer Schleife den ganzen String adressieren.
str_1 = "Hallo Welt!" for ch in str_1: print(ch)
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.
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
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.
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.
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.
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
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.
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.
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.
Umgekehrt kann der not in-Operator verwendet werden. Auch er gibt einen Boolean zurück.
str_1 = "Hallo Welt!" 'W' not in str_1
Jetzt haben wir zwei Möglichkeiten kennengelernt, um einen String auf ein Zeichen zu prüfen.
Wie am Anfang bereits erwähnt, gibt es zahlreiche eingebaute Methoden, um mit Strings zu arbeiten. Lasst uns deshalb einmal die wichtigsten anschauen.
Die len()-Methode wird verwendet, um die Länge eines Strings zu erhalten.
str_1 = "Hallo Welt!" len(str_1)
Es wird die Länge des übergebenen Strings ausgegeben.Dabei werden alle Zeichen gezählt, auch die Leerzeichen.
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.
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.
Wir können die Methode auch zum Finden von Zeichenfolgen nutzen.
Mit der find()-Methode können wir die Position einer Zeichenfolge im String ermitteln.
str_1 = "Hallo Welt!" i = str_1.find('W')
Wie die count()-Methode unterscheidet auch die find()-Methode zwischen Groß- und Kleinschreibung.
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')
Obwohl das l öfter als einmal vorhanden ist, wird nur die erste Position zurückgegeben.
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.
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.
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.
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.
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.
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.
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.
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.
"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
Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.
100% kostenlos registrieren · keine Zahlungsdaten notwendig