Skip to content

Zeichenketten

Zeichenketten werden mit einfachen ' oder doppelten " oder dreifach-doppelten """ Anführungsstrichen abgegrenzt. Letztere Variante erlaubt es, mehrzeilige Zeichenketten zu schreiben:

Beispiel
"Hallo Welt"
'Hallo Welt'
""" Hallo
liebe
Welt"""

Eine Mischung der Anführungszeichen zur Abtrennung ist nicht zulässig, sehr wohl aber deren Vorkommen in einem durch anderen Anführungszeichen abgetrennten Text:

Beispiel
"Can't touch this"
'Dann sagte er "Heureka!".'

Wenn aber beide Zeichen ' und " vorkommen sollen, dann müssen die Vorkommen der äußeren Anführungsstriche in der Zeichenkette selbst durch Voranstellen von \ maskiert werden:

Beispiel
'Dann sagte er "Can\'t touch this".'

Zwei Zeichenketten lassen sich verbinden:

Beispiel
"Wer A sagt " + "kann sich irren." # "Wer A sagt kann sich irren."

Mit einer definierten Addition ist natürlich auch eine Multiplikation definiert:

Beispiel
"Na" * 12 + " Batman!" # 'NaNaNaNaNaNaNaNaNaNaNaNa Batman!'

Hat man eine Liste an Zeichenketten, kann man die über die Funktion str.join verbinden:

Beispiel
",".join(["Montag", "Dienstag"]) # 'Montag,Dienstag'
"-...-".join(["Montag", "Dienstag", "Mittwoch"]) # 'Montag-...-Dienstag-...-Mittwoch'

Teile einer Zeichenkette können über die Indizierung [a:b] erhalten werden. Dabei ist a das erste Zeichen, das extrahiert werden soll und b das erste Zeichen, das nicht mehr enthalten sein soll. In Python beginnt die Zählung bei 0.

Beispiel
"Erblasser"[2:7] # 'blass'

Einzelne Buchstaben können so auch extrahiert werden, negative Indizes zählen von hinten:

Beispiel
"Teil"[0] # 'T'
"Teil"[-1] # 'l'
"Teil"[-3:-1] # 'ei'

Wird eine der Grenzen in [a:b] weggelassen, wird für a 0 angenommen und für b -1. Das ist eine generelle Konvention in Python über die Zeichenketten hinaus.

Beispiel
"Teil"[1:] # 'eil'
"Teil"[-1] # 'l'
"Teil"[:-2] # 'Te'

Konvertierung

Die Konvertierung ist einfach aber nicht immer offensichtlich:

Beispiel
str(2) # '2'
str(1/9*9) # '1.0', weil 1/9 als Dezimalzahl evaluiert wurde
str(1) # '1'
str(1/9) # '0.1111111111111111'