Grundlegendes zu Zeichenketten (Strings)

Beginn und Ende der Zeichenkette

In Python sind Zeichenketten entweder durch einfache Hochkommas ' oder durch doppelte Hochkommas " eingeschlossen, wichtig ist dabei, dass am Anfang und am Ende der Zeichenkette die gleiche Art Hochkommas steht. Wenn nun innerhalb der Zeichenkette das gleiche Hochkomma im Text auftaucht, muss es mit einem umgekehrten Schrägstrich (Backslash) \ maskiert (escaped) werden, damit es nicht als Ende der Zeichenkette interpretiert wird.

In [2]:
a = 'Ich glaub\' ich spinn - ein Hochkomma im String'

mehrzeilige Zeichenketten

Wenn die Zeichenkette über mehrere Zeilen geht, dann können entweder Zeilenende-Zeichen \n in die Zeichenkette eingebaut werden oder die Zeichenkette wird entweder in drei einfache ''' oder in drei doppelte """ Hochkommas eingeschlossen.

In [3]:
a = """Dies ist ein mehrzeiliger Text
mit vier Zeilen ohne Zeilenende-Zeichen
und einfachen "Hochkommas" innerhalb der Zeichenkette,
die dann nicht maskiert werden müssen"""
In [4]:
b = "Alternativ kann ein mehrzeiliger Text\nauch mit Zeilenende-Zeichen\nversehen werden, um\nein Zeilenende zu markieren"

Stringoperationen

Addition

In [5]:
%%Mooc StringAssessment
Out[5]:

Addition von Text

Wenn jetzt die beiden folgenden Zuweisungen für die Variablen a und b durchgeführt werden


    a = "Wort1"
    b = "Wort2"

und dann


    a + b

berechnet wird,

was wird als Ergebnis angezeigt?



In [6]:
%%Mooc StringAssessment
Out[6]:

Automatische Umwandlung einer Variablen ?

Wenn jetzt die beiden folgenden Zuweisungen für die Variablen a und b durchgeführt werden


    a = 2
    b = "Wort1"

und dann


    a + b

berechnet wird,

was wird als Ergebnis angezeigt?



In [7]:
%%Mooc StringAssessment
Out[7]:

Umwandlung einer Zahl in einen String

Mit der Funktion str() wird eine Integer- oder Reelle Zahl in einen Type str umgewandelt. Dies bedeutet, dass damit die Addition der obigen Aufgabe möglich wird:


    str(a) + b

Was wird als Ergebnis angezeigt?



Multiplikation

Auch die Multiplikation kann auf Zeichenketten angewendet werden und kann insbesondere bei der Formatierung von Texten sinnvoll eingesetzt werden.

In [8]:
%%Mooc StringAssessment
Out[8]:

Multiplikation von Text

Wenn jetzt die beiden folgenden Zuweisungen für die Variablen a und b durchgeführt werden


    a = 10
    b = "+-"

und dann


    a * b

berechnet wird,

was wird als Ergebnis angezeigt?



Stringindex

Index

Die einzelnen Zeichen einer Zeichenkette können über den Index angesprochen werden. Dabei muss berücksichtigt werden, dass der Index immer bei 0 beginnt.

In [9]:
hs = "Hochschule"
In [10]:
erstesZeichen = hs[0]
In [11]:
letztesZeichen = hs[9]

Länge einer Zeichenkette

Mit der Funktion len() lässt sich die Länge einer Zeichenkette bestimmen.

In [12]:
laenge = len(hs)

Damit kann das letzte Zeichen auch folgendermaßen bestimmt werden:

In [13]:
letztesZeichen = hs[len(hs)-1]

negativer Index

Dabei kann der Index auch negative Zahlen annehmen und wird dann von rückwärts gezählt:

In [14]:
letztesZeichen = hs[-1]    
In [15]:
erstesZeichen = hs[-len(hs)]

Die positiven und negativen Indizes kann man sich als zwischen den Zeichen positioniert vorstellen:

  +---+---+---+---+---+---+---+---+---+---+
  | H | o | c | h | s | c | h | u | l | e |
  +---+---+---+---+---+---+---+---+---+---+
  0   1   2   3   4   5   6   7   8   9
-10  -9  -8  -7  -6  -5  -4  -3  -2  -1

Slice

Teile einer Zeichenkette können als Slice ebenfalls angesprochen werden, dabei wird der Startindex von dem Endindex durch einen Doppelpunkt getrennt, wobei der Startindex das entsprechende Zeichen inkludiert und der Endindex das entsprechende Zeichen exkludiert. Sowohl der Startindex als auch der Endindex können dabei weggelassen werden, wenn die Zeichenkette jeweils von Anfang bzw. bis zum Ende angesprochen werden soll.

In [16]:
schule = hs[4:]
print(schule)
schule
In [17]:
%%Mooc StringAssessment
Out[17]:

Addition von Slices

Wie oben ist die Variablen hs folgendermaßen zugewiesen


    hs = "Hochschule"

Geben sie an, wie sie aus dieser Variablen das Wort 'Hole' erstellen?



Zeichenketten sind unveränderbar (immutable)

Beachten sie, dass Zeichenketten unveränderbar sind und sie ein einzelnes (oder auch mehrere) Zeichen einer Zeichenkette durch eine Zuweisung (über den Index) nicht verändern können.

Operator zum Test auf Mitgliedschaft in einer Zeichenkette oder Sequenz (in-Operator)

In Python gibt es noch den zusätzlichen Operator in zum Testen ob ein entsprechendes Objekt in einer Zeichenkette bzw. allgemeiner in einer Sequenz enthalten ist, bzw. mit einem vorangestellten not ob es entsprechend nicht enthalten ist.

In [18]:
%%Mooc MultipleChoiceAssessment
Out[18]:

in-Operator

Die Variablen a und b werden folgendermaßen vorbesetzt:


    a = "Dies ist eine Zeichenkette mit mehreren Wörtern"
    b = "und"

und werden in die folgende Operation eingesetzt:

    b not in a

Ist das Ergebnis der obigen Operation wahr oder falsch ?

True
False

In [19]:
%%Mooc Video
Out[19]:

Weitere Literatur

In [20]:
%%Mooc WebReference

Strings

https://docs.python.org/3/tutorial/introduction.html#strings

Hinweis: im ersten Kapitel des offiziellen Python Tutorials