Text ist überall in der Programmierung — Benutzernamen, Nachrichten, Dateinamen, Ausgaben. In Python nennen wir Textwerte Zeichenketten (englisch: strings). Sie werden in Anführungszeichen eingeschlossen.
Zeichenketten erstellen
begruessung = "Hallo, Welt!"
name = 'Max Mustermann'
mehrzeilig = """Dies ist
ein mehrzeiliger
Text."""
Einfache (') und doppelte (") Anführungszeichen sind gleichwertig. Dreifache Anführungszeichen erlauben mehrzeilige Zeichenketten.
Grundlegende Operationen
vorname = "Anna"
nachname = "Schmidt"
# Verkettung (Konkatenation)
vollname = vorname + " " + nachname
print(vollname) # Anna Schmidt
# Wiederholung
print("-" * 20) # --------------------
# Länge
print(len(vollname)) # 11
Auf Zeichen zugreifen (Indizierung)
Jedes Zeichen in einer Zeichenkette hat eine Position — den Index. In Python beginnt die Zählung bei 0:
wort = "Python"
# P y t h o n
# Index: 0 1 2 3 4 5
print(wort[0]) # P
print(wort[2]) # t
print(wort[-1]) # n (letztes Zeichen)
print(wort[-2]) # o (vorletztes Zeichen)
Negative Indizes zählen vom Ende der Zeichenkette rückwärts. wort[-1] gibt immer das letzte Zeichen zurück, egal wie lang die Zeichenkette ist.
Teilzeichenketten (Slicing)
Du kannst einen Bereich von Zeichen herausschneiden:
text = "Informatik"
print(text[0:5]) # Infor (Index 0 bis 4)
print(text[5:]) # matik (ab Index 5 bis zum Ende)
print(text[:4]) # Info (vom Anfang bis Index 3)
print(text[::2]) # Ifrai (jedes zweite Zeichen)
Nützliche String-Methoden
satz = " hallo welt "
print(satz.upper()) # " HALLO WELT "
print(satz.lower()) # " hallo welt "
print(satz.strip()) # "hallo welt" (Leerzeichen entfernen)
print(satz.strip().title()) # "Hallo Welt" (Erster Buchstabe groß)
wort = "Programmieren"
print(wort.replace("m", "M")) # "PrograMMieren"
print(wort.startswith("Pro")) # True
print(wort.endswith("ren")) # True
print(wort.count("r")) # 2
Methoden können verkettet werden: text.strip().lower().replace(" ", "_") entfernt zuerst Leerzeichen an den Rändern, macht alles klein und ersetzt dann Leerzeichen durch Unterstriche.
f-Strings (formatierte Zeichenketten)
f-Strings sind die modernste und empfohlene Art, Variablen in Text einzufügen:
name = "Lisa"
alter = 14
print(f"Mein Name ist {name} und ich bin {alter} Jahre alt.")
# Mein Name ist Lisa und ich bin 14 Jahre alt.
pi = 3.14159
print(f"Pi gerundet: {pi:.2f}") # Pi gerundet: 3.14
Text in eine Liste aufteilen
satz = "Apfel,Banane,Kirsche"
obst_liste = satz.split(",")
print(obst_liste) # ['Apfel', 'Banane', 'Kirsche']
# Und wieder zusammensetzen
neu = " - ".join(obst_liste)
print(neu) # Apfel - Banane - Kirsche
Zeichenketten in Python sind unveränderlich (immutable). Du kannst ein einzelnes Zeichen nicht direkt ersetzen: wort[0] = "X" wirft einen Fehler. Stattdessen musst du eine neue Zeichenkette erstellen: wort = "X" + wort[1:].
Übungsaufgaben
Was gibt wort[1:4] für wort = 'Python' aus?
Antwort anzeigen
Schreibe einen Python-Ausdruck, der prüft, ob der String s ein Palindrom ist (vorwärts und rückwärts gelesen gleich). Beispiel: 'Rentner'.