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:
Code | Ergebnis |
---|---|
\‘ | Einzelnes Zitat |
\\ | Backslash |
\n | Neue Linie |
\r | Rückgabe |
\t | Tab |
\b | Rücktaste |
\f | Formular Feed |
\ooo | Oktalwert |
\xhh | Hex-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.
Methode | Beschreibung |
---|---|
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()
undreplace()
, 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.