3. Unterrichtsblock

Python Strings

Strings (zu Deutsch: Zeichenfolgen) in Python sind entweder von einfachen oder doppelten Anführungszeichen umgeben. Man kann ein String-Literal mit der Funktion print() anzeigen:

# "Hallo" ist dasselbe wie 'Hallo'.
print("Hallo")
print('Hallo')

Zeichenfolge einer Variablen zuweisen

Die Zuweisung eines Strings zu einer Variablen erfolgt mit dem Variablennamen, gefolgt von einem Gleichheitszeichen und dem String:

a = "Hallo"
print(a)

Mehrzeilige Strings

Man kann einer Variablen einen mehrzeiligen String zuweisen, indem man drei Anführungszeichen verwendet:

# Verwendung von drei doppelten Anführungszeichen:
a = """Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua."""

print(a)


# Oder drei einfachen Anführungszeichen:
a = '''Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.'''

print(a)

Hinweis: Im Ergebnis werden die Zeilenumbrüche an der gleichen Stelle wie im Code eingefügt.

Strings sind Arrays (zu Deutsch: Ansammlungen)

Wie viele andere beliebte Programmiersprachen sind Strings in Python Arrays (Ansammlungen) von Bytes, die Unicode-Zeichen darstellen. Python hat jedoch keinen Zeichendatentyp, ein einzelnes Zeichen ist einfach ein String mit einer Länge von 1.

Mit eckigen Klammern kann auf Elemente eines Strings zugegriffen werden.

# Ausgabe des Zeichens an Position 1 (Das erste Zeichen hat die Position 0):
a = "Hallo, Welt!"
print(a[1])

Aufgabe

Lasse dir mit o.g. Methode nur den Teil „Welt“ ausgeben.

Strings mit Schleifen durchlaufen

Da Strings Arrays sind, können die Zeichen in einem String mit einer for-Schleife durchlaufen werden.

# Durchlaufen aller Buchstaben des Wortes „Zwetschge“:
for x in "Zwetschge":
  print(x)

Aufgabe

Probiere o.g. Code aus.

Über Schleifen lernen wir in einem späteren Unterrichtsblock mehr.

String-Länge

Um die Länge einer Zeichenfolge zu erhalten, verwendet man die len()-Funktion. Die len()Funktion gibt die Länge eines Strings zurück:

a = "Hallo, Welt!"
print(len(a))

Aufgabe

Probiere o.g. Code aus.

Zeichenkette prüfen

Um zu überprüfen, ob eine bestimmte Phrase oder ein bestimmtes Zeichen in einer Zeichenfolge vorhanden ist, können wir das Schlüsselwort in verwenden.

# Überprüfung, ob im folgenden Text "Biergarten" vorhanden ist:
txt = "Unser Wirtshaus bietet neben einer guten Küche auch einen wunderschönen Biergarten."
print("Biergarten" in txt)

Aufgabe

Probiere o.g. Code aus.

Verwendung in einer if-Anweisung:

# Ausgabe erfolgt nur, wenn "Biergarten" vorhanden ist:
txt = "Unser Wirtshaus bietet neben einer guten Küche auch einen wunderschönen Biergarten."
if "Biergarten" in txt:
  print("Ja, das Wirtshaus hat einen 'Biergarten'.")

Aufgabe

Probiere o.g. Code aus.

Wir lernen in einem späteren Unterrichtsblock mehr über if-Anweisungen.

Überprüfung auf NOT

Um zu überprüfen, ob eine bestimmte Phrase oder ein bestimmtes Zeichen NICHT in einer Zeichenfolge vorhanden ist, kann das Schlüsselwort not in verwendet werden.

# Überprüfung, ob "Kegelbahn" im folgenden Text NICHT vorhanden ist:
txt = "Unser Wirtshaus bietet neben einer guten Küche auch einen wunderschönen Biergarten."
print("Kegelbahn" not in txt)

Aufgabe

Probiere o.g. Code aus.

Verwendung in einer if-Anweisung:

# Ausgabe soll nur erfolgen, wenn "Kegelbahn" NICHT vorhanden ist:
txt = "Unser Wirtshaus bietet neben einer guten Küche auch einen wunderschönen Biergarten."
if "Kegelbahn" not in txt:
  print("Nein, eine 'Kegelbahn' ist nicht vorhanden.")

Aufgabe

Probiere o.g. Code aus.

Strings schneiden

Man kann eine Reihe von Zeichen zurückgeben, indem man die Slice-Syntax verwendet. Hierbei wird der Startindex und den Endindex getrennt durch einen Doppelpunkt angegeben, um einen Teil der Zeichenfolge zu erhalten.

# Ausgabe der  Zeichen von Position 2 bis Position 5 (nicht enthalten):
b = "Hallo, Welt!"
print(b[2:5])

Hinweis: Das erste Zeichen hat den Index 0.

Von Beginn an schneiden

Wenn man den Startindex weglässt, beginnt der Bereich beim ersten Zeichen:

# Ausgabe der Zeichen von Anfang bis Position 5 (nicht enthalten):
b = "Hallo, Welt!"
print(b[:5])

Bis zum Ende schneiden

Durch Weglassen des Endindex geht der Schnittbereich bis zum Ende:

# Ausgabe der Zeichen von Position 2 bis zum Ende:
b = "Hallo, Welt!"
print(b[2:])

Negative Indizes

Um dem Schnitt am Ende der Zeichenfolge zu beginnen, werden negative Indexwerte verwendet:

b = "Hallo, Welt!"
print(b[-5:-2])

Aufgabe

Teste die Codes aus dieser Lektion und verwende dabei unterschiedliche Werte & Parameter.

Strings ändern

Python verfügt über eine Reihe integrierter Methoden, die Sie für Zeichenfolgen verwenden können. Die Methoden werden hierbei mit einem „.“ an die zu ändernde Variable angehangen.

# Beispiel: Der Variablenname lautet "a" die Methode wird durch einen "." an die Variable angehängt
print(a.upper())

Großbuchstaben

Die upper()-Methode gibt den String in Großbuchstaben zurück:

a = "Hallo, Welt!"
print(a.upper())

Kleinbuchstaben

Die lower()-Methode gibt den String in Kleinbuchstaben zurück:

a = "Hallo, Welt!"
print(a.lower())

Leerzeichen entfernen

Leerzeichen sind Leerraum vor und/oder nach dem eigentlichen Text, und sehr oft soll dieser Leerraum entfernt werden. Die strip()-Methode entfernt alle Leerzeichen am Anfang oder am Ende:

a = " Hallo, Welt! "
print(a.strip()) # Ausgabe "Hallo, Welt!"

Zeichenfolge ersetzen

Die replace()-Methode ersetzt einen String durch einen anderen String:

a = "Hallo, Welt!"
print(a.replace("H", "J"))

Split-String

Die split()-Methode gibt eine Liste zurück, in der der Text zwischen dem angegebenen Trennzeichen als Listenelemente ausgegeben wird.

Die split()-Methode teilt einen String in Teilstrings auf, wenn das Trennzeichen (hier ein Komma „,“) findet:

a = "Hallo, Welt!"
print(a.split(",")) # Ausgabe ['Hallo', ' Welt!']

Über Listen erfahren wir in einem späteren Unterrichtsblock mehr.

String-Methoden

Liste aller String-Methoden: hier klicken

Aufgabe

Führe o.g. Codes aus, um ein Gefühl hierfür zu bekommen.

Strings verketten

Um zwei Zeichenfolgen zu verketten oder zu kombinieren, kann der + Operator verwendet werden.

Variable a mit Variable b in Variable c zusammenführen:

a = "Hallo"
b = "Welt"
c = a + b
print(c)

Um ein Leerzeichen dazwischen einzufügen, verwendet man " ":

a = "Hallo"
b = "Welt"
c = a + " " + b
print(c)

Aufgabe

Führe o.g. Code aus und teste auch selbst erstellte Befehle.

Strings formatieren

Wie im letzten Unterrichtsblock erwähnt, können Strings und Zahlen nicht wie folgt kombinieren:

alter = 36
txt = "Mein Name ist Max, ich bin " + alter
print(txt)

Aufgabe

Führe o.g. Code aus.

Aber man kann Strings und Zahlen mit der format()-Methode kombinieren.

Die format()-Methode nimmt die übergebenen Argumente, formatiert sie und platziert sie im String, wo sich die Platzhalter {}befinden:

Verwendung der format()-Methode, um Zahlen in Zeichenfolgen einzufügen:

alter = 36
txt = "Mein Name ist Max, und ich bin {}"
print(txt.format(alter)) # Die Variable "txt" wird durch den "." um die Methode "format()" erweitert

Die Methode format () akzeptiert eine unbegrenzte Anzahl von Argumenten und wird in die entsprechenden Platzhalter eingefügt:

anzahl = 3
produktnummer = 567
preis = 49.95
meinebestellung = "Ich kaufe {} Stück von Produktnummer {} für {} EUR."
print(meinebestellung.format(anzahl, produktnummer, preis))

Man kann Indexnummern verwenden, {0} um sicherzustellen, dass die Argumente in den richtigen Platzhaltern platziert werden:

anzahl = 3
produktnummer = 567
preis = 49.95
meinebestellung = "Ich bezahle {2} EUR für {0} Stück von Produktnummer {1}."
print(meinebestellung.format(anzahl, produktnummer, preis))

Aufgabe

Führe o.g. Code-Beispiele aus und teste auch selbst erstellte Befehle.

String-Escape-Zeichen

Um unzulässige Zeichen in einen String einzufügen, verwendet man sogenannte „Escape-Zeichen“. Ein Escape-Zeichen ist ein umgekehrter Schrägstrich, \ gefolgt von dem Zeichen, das man einfügen möchte.

Ein Beispiel für ein unzulässiges Zeichen ist ein doppeltes Anführungszeichen innerhalb eines Strings, welcher von doppelten Anführungszeichen umgeben ist:

# Man erhält eine Fehlermeldung, 
# wenn man doppelte Anführungszeichen innerhalb eines Strings verwendet,
# der von doppelten Anführungszeichen umgeben ist:

txt = "Um unzulässige Zeichen in einen String einzufügen kann man sog. "Escape-Zeichen" verwenden."
print(txt)

Um dieses Problem zu beheben, verwendet man das Escape-Zeichen \":

Das Escape-Zeichen ermöglichen es, doppelte Anführungszeichen zu verwenden, wenn dies normalerweise nicht erlaubt wäre:

txt = "Um unzulässige Zeichen in einen String einzufügen kann man sog. \"Escape-Zeichen\" verwenden."
print(txt)

Übersicht der Escape-Zeichen

Andere in Python verwendete Escape-Zeichen:

CodeErgebnis
\‘Einzelnes Zitat
\\Backslash
\nNeue Linie
\rRückgabe
\tTab
\bRücktaste
\fFormular Feed
\oooOktalwert
\xhhHex-Wert

String-Methoden

Python verfügt über eine Reihe integrierter Methoden, die man für Strings verwenden kann.

Hinweis: Alle String-Methoden geben neue Werte zurück. Sie ändern den ursprünglichen String nicht.

MethodeBeschreibung
capitalize()Wandelt das erste Zeichen in Großbuchstaben um
casefold()Wandelt Strings in Kleinbuchstaben um
center()Gibt einen zentrierten String zurück
count()Gibt zurück, wie oft ein bestimmter Wert in einem String vorkommt
encode()Gibt eine codierte Version des Strings zurück
endswith()Gibt true zurück, wenn der String mit dem angegebenen Wert endet
expandtabs()Legt die Tabulatorgröße des Strings fest
find()Durchsucht den String nach einem bestimmten Wert und gibt die Position zurück, an der er gefunden wurde
format()Formatiert angegebene Werte in einem String
format_map()Formatiert angegebene Werte in einem String
index()Durchsucht den String nach einem bestimmten Wert und gibt die Position zurück, an der er gefunden wurde
isalnum()Gibt true zurück, wenn alle Zeichen im String alphanumerisch sind
isalpha()Gibt true zurück, wenn alle Zeichen im String im Alphabet enthalten sind
isdecimal()Gibt true zurück, wenn alle Zeichen im String Dezimalzahlen sind
isdigit()Gibt true zurück, wenn alle Zeichen im String Ziffern sind
isidentifier()Gibt true zurück, wenn der String ein Bezeichner (identifier) ist
islower()Gibt true zurück, wenn alle Zeichen im String Kleinbuchstaben sind
isnumeric()Gibt true zurück, wenn alle Zeichen im String numerisch sind
isprintable()Gibt true zurück, wenn alle Zeichen im String druckbar sind
isspace()Gibt true zurück, wenn alle Zeichen im String Leerzeichen sind
istitle()Gibt true zurück, wenn der String den Regeln eines Titels folgt (bzw. ein Titel ist)
isupper()Gibt true zurück, wenn alle Zeichen im String Großbuchstaben sind
join()Verbindet die Elemente einer Iterablen mit dem Ende eines Strings
ljust()Gibt eine linksbündige Version des Strings zurück
lower()Konvertiert einen String in Kleinbuchstaben
lstrip()Gibt eine von links getrimmte Version des Strings zurück
maketrans()Gibt eine Übersetzungstabelle zurück, die in Übersetzungen verwendet werden soll
partition()Gibt ein Tupel zurück, bei dem der String in drei Teile geteilt wird
replace()Gibt einen String zurück, in der ein Wert durch einen anderen Wert ersetzt wird
rfind()Durchsucht den String nach einem angegebenen Wert und gibt die letzte Position zurück, an der er gefunden wurde
rindex()Durchsucht den String nach einem angegebenen Wert und gibt die letzte Position zurück, an der er gefunden wurde
rjust()Gibt eine rechtsbündige Version des Strings zurück
rpartition()Gibt ein Tupel zurück, bei dem der String in drei Teile geteilt wird
rsplit()Teilt den String am angegebenen Trennzeichen und gibt eine Liste zurück
rstrip()Gibt eine von rechts getrimmte Version des Strings zurück
split()Teilt den String am angegebenen Trennzeichen und gibt eine Liste zurück
splitlines()Teilt den String an Zeilenumbrüchen und gibt eine Liste zurück
startswith()Gibt true zurück, wenn der String mit dem angegebenen Wert beginnt
strip()Gibt eine gekürzte Version des Strings zurück
swapcase()Vertauscht Groß- und Kleinschreibung, Kleinschreibung wird Großschreibung und umgekehrt
title()Konvertiert das erste Zeichen jedes Wortes in Großbuchstaben
translate()Gibt einen übersetzten String zurück
upper()Konvertiert einen String in Großbuchstaben
zfill()Füllt den String am Anfang mit einer angegebenen Anzahl von 0-Werten

Aufgabe

String-Zuweisung und Ausgabe:

  • Weisen Sie einer Variablen einen String zu und geben Sie ihn mit der print()-Funktion aus.

    Mehrzeilige Strings:

    • Erstellen Sie einen mehrzeiligen String mittels dreifacher Anführungszeichen und geben Sie ihn aus.

    Auf einen String zugreifen:

    • Geben Sie das 4. Zeichen eines Strings aus und nutzen Sie negative Indizes, um das Zeichen an der vorletzten Position zu drucken.

    Substring extrahieren:

    • Extrahieren Sie mit Hilfe der Slice-Syntax den Wortteil „Welt“ aus dem String „Hallo, Welt!“ und geben Sie ihn aus.

    Länge eines Strings ermitteln:

    • Bestimmen Sie die Länge des Strings „Python Programmierung“ und geben Sie diese aus.

    Zeichenkette überprüfen:

    • Überprüfen Sie, ob das Wort „Python“ in dem String „Lernen Sie Python Programmierung“ enthalten ist, und geben Sie das Ergebnis aus.

    String manipulieren:

    • Verwenden Sie die Methoden upper(), lower(), strip() und replace(), um verschiedene Formen eines Strings zu erzeugen.

    Strings verketten:

    • Verketten Sie zwei Strings „Python“ und „Programmierung“ mit und ohne ein Leerzeichen dazwischen.

    String formatieren:

    • Verwenden Sie die format()-Methode, um Variablen in einen Satz einzufügen.

    Escape-Zeichen verwenden:

    • Kreieren Sie einen String, der doppelte Anführungszeichen enthält und geben Sie ihn aus.