Ein String (str) ist eine Folge von Zeichen. Du schreibst ihn in einfachen oder doppelten Anführungszeichen. Python verarbeitet Unicode, also auch Umlaute, Emojis und Zeichen aus allen Schriftsystemen.
a = "Hallo"
b = 'Welt'
c = "Er sagte: 'Hi'" # einfache Anführungszeichen im Text
d = 'Sie sagte: "Hallo"'
print(a, b)
print(c)
print(d)Hallo Welt Er sagte: 'Hi' Sie sagte: "Hallo"
Zeichen und Länge
Jedes Zeichen hat eine Position (Index), gezählt ab 0. Negative Indizes zählen von hinten:
wort = "Python"
print(wort[0]) # erstes Zeichen
print(wort[5]) # sechstes Zeichen
print(wort[-1]) # letztes Zeichen
print(len(wort)) # LängeP n n 6
Texte sind unveränderlich: Du kannst ein einzelnes Zeichen nicht überschreiben, sondern baust einen neuen Text.
wort = "Python"
wort[0] = "J"Traceback (most recent call last):
File "beispiel.py", line 2, in <module>
wort[0] = "J"
TypeError: 'str' object does not support item assignmentAusschnitte (Slicing)
Mit text[von:bis] holst du einen Teil. Das Ende ist nicht enthalten. Fehlt eine Angabe, geht es bis zum Anfang bzw. Ende. Ein dritter Wert ist die Schrittweite:
s = "Programmieren"
print(s[0:4]) # Prog
print(s[:4]) # ab Anfang
print(s[7:]) # bis Ende
print(s[-5:]) # die letzten fünf
print(s[::2]) # jedes zweite Zeichen
print(s[::-1]) # umgekehrtProg Prog mieren ieren Pormirn nereimmargorP
Verketten und Wiederholen
print("Hallo" + " " + "Welt")
print("ha" * 3)
print("-" * 20)Hallo Welt hahaha --------------------
Zahlen musst du vor dem Verketten in Text umwandeln: "Alter: " + str(17). Mit f-Strings (siehe Kapitel Ein- und Ausgabe) geht das bequemer.
Prüfen und Durchsuchen
satz = "Python ist eine Programmiersprache"
print("ist" in satz)
print("Java" not in satz)
print(satz.startswith("Python"))
print(satz.endswith("sprache"))
print(satz.find("eine")) # Position oder -1
print(satz.count("e"))True True True True 11 4
Escape-Zeichen
Mit dem Rückwärtsschrägstrich schreibst du Sonderzeichen:
| Schreibweise | Bedeutung |
|---|---|
\n | neue Zeile |
\t | Tabulator |
\\ | ein Rückwärtsschrägstrich |
\" und \' | Anführungszeichen im Text |
\u00e4 | Unicode-Zeichen (hier ä) |
Raw-Strings mit vorangestelltem r ignorieren Escapes, praktisch für Dateipfade und reguläre Ausdrücke:
print("C:\\Users\\Mia")
print(r"C:\Users\Mia")
print("Zeile 1\nZeile 2")
print("Gr\u00fc\u00dfe")C:\Users\Mia C:\Users\Mia Zeile 1 Zeile 2 Grüße
Zeichenketten durchlaufen
Eine for-Schleife läuft Zeichen für Zeichen durch den Text:
for buchstabe in "abc":
print(buchstabe)a b c
Merke
- Index ab 0, negative Indizes zählen von hinten,
len()liefert die Länge - Slicing:
text[von:bis:schritt], das Ende ist ausgeschlossen - Strings sind unveränderlich
+verkettet,*wiederholt,inprüft Enthaltensein\n,\t,\\; Raw-Stringr"..."für Pfade
Aufgabe
Gib von dem Wort "Programmiersprache" die ersten drei und die letzten drei Buchstaben aus, und danach das Wort rückwärts.