Python für Anfänger

Einführung in Strings I

Zuletzt aktualisiert am 19. August 2019 von Michael Lossagk , 12 Min  • 
Einführung in Strings I

1. Einleitung


Ein wichtiger Teil beim Programmieren ist die Arbeit mit Zeichenketten, in Englisch Strings genannt. Hierfür ist Python besonders geeignet, da der Umgang mit Strings in Python sehr simpel ist.

In diesem Tutorial möchte ich Dir einige der Möglichkeiten zeigen die Python mitbringt, um mit Zeichenketten zu arbeiten.

Damit Du den größten Lerneffekt hast, empfehle ich Dir die Beispiele abzutippen und nicht zu kopieren und einzufügen. Somit kannst Du das gelernte besser verarbeiten und in späteren Situationen einfacher abrufen.

2. Strings in Python


Für die Beispiele nutze ich die interaktive Shell von Python:

$ python3
Python 3.6.8 (default, May  2 2019, 20:40:44)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

2.1 Einführung in Strings


In Python werden Strings in einfache ' ('Ich bin ein String') oder doppelte Anführungszeichen " ("Ich bin ein String") gesetzt.

# double quotes
>>> print("Hello World")
Hello World

# simple quotes
>>> print('Hello World')
Hello World

# Mixed quotation marks lead to an error
>>> print('Hello World")
  File "<stdin>", line 1
    print('Hello World")
                       ^
SyntaxError: EOL while scanning string literal

2.2 Steuerzeichen


Jetzt stellt sich vielleicht einer von euch die Frage, wie kann man nun ein Anführungszeichen innerhalb von Strings verwenden, um z.B. folgendes zu schreiben: Er sagte: "Python ist cool.". Auch hierfür gibt es eine Lösung. Wenn man verhindern möchte, dass in Programmiersprachen Steuerzeichen als solche interpretiert werden kann man sogenannte escape characters auch Escapesequenzen oder Steuerzeichen, benutzen. In Python nutzen wir hierfür das Backslash \ welches wir dem Anführungszeichen innerhalb des Strings voranstellen.

# escape character
>>> print("Er sagte: \"Python ist cool.\"")
Er sagte: "Python ist cool."

Wenn man einen String in einfache Anführungszeichen setzt, kann man innerhalb des Strings doppelte Anführungszeichen allerdings auch ohne Escapesequenz nutzen.

>>> print('Er denkt sich: "Programmieren zu lernen kann ganz leicht sein."')
Er denkt sich: "Programmieren zu lernen kann ganz leicht sein."

Eine weitere wichtige Escapesequenz ist \n um einen Textumbruch zu erzeugen und die Zeichenkette in einer neuen Zeile fortzuführen. Das ist wichtig zu beachten, da es sonst zu Problemen führen kann wie wir im folgenden Beispiel sehen werden.

>>> print("'C:\ein\neuer\pfad'")
'C:\ein
euer\pfad'

Wie wir sehen können, wurde der Text Durch das Steuerzeichen \n umgebrochen, allerdings ist das nicht das Ergebnis, dass wir erzielen wollten. Um das zu verhindern, müssen wir wiederum vor die Escapesequenz \n ein Steuerzeichen \ setzen. Umgangssprachlich sagt man auch: \ escapen.

>>> print("'C:\ein\\neuer\pfad'")
'C:\ein\neuer\pfad'

Ein weiteres Steuerzeichen in Python ist \t. Wir können es nutzen, um einen Tab Abstand zu erzeugen.

>>> print("Nach diesem Text kommt ein Tab Abstand \t Vor diesen, Text kommt ein Tab Abstand.")
Nach diesem Text kommt ein Tab Abstand 	 Vor diese, Text kommt ein Tab Abstand.
>>> print("Tab, Tab, Tab \t\t\t Der Abstand ist nun größer.")
Tab, Tab, Tab 			 Der Abstand ist nun größer.

2.3 Mehrzeilige Strings


Zeichenketten können sich über mehrere Zeilen erstrecken. In Python kann man hierfür die Triple-Quotes verwenden, entweder in doppelten """....""" oder in einfachen '''....''' Anführungszeichen.

>>> print("""
... Das ist ein
... langer Satz mit
... Zeilenumbrüchen.
... """)

Das ist ein
langer Satz mit
Zeilenumbrüchen.

Zeilenenden werden automatisch in die Zeichenkette aufgenommen, wie z.B. die leere Zeile zwischen dem Ende des print() Befehl und dem Anfang der Ausgabe, aber es ist möglich, dies zu verhindern, indem man ein \ am Ende der Zeile anhängt. Dies illustriert das folgende Beispiel:

>>> print("""\
... In diesem Beispiel wird
... die erste Zeilen
... nicht umgebrochen.
... """)
In diesem Beispiel wird
die erste Zeilen
nicht umgebrochen.

Hier haben wir keine Leerzeile zwischen dem Ende des print() Befehls und der Ausgabe.

2.4 Strings und Konkatenation


In Python können Strings mit dem Pluszeichen + miteinander verbunden werden.

>>> "Das ist" + " ein ganzer Satz."
'Das ist ein ganzer Satz.'

Mit dem Malzeichen * können Strings in Python multipliziert werden. Dies kann man auch mit einer Konkatenation verbinden.

>>> 3 * "Hallo, " + "ist jemand da?"
'Hallo, Hallo, Hallo, ist jemand da?'

Natürlich kann man die Konkatenation und die Multiplikation von Strings auch im Zusammenhang mit Variablen nutzen.

>>> hello = "Hallo, "
>>> at_home = "ist jemand da?"
>>> 3 * hello + at_home
'Hallo, Hallo, Hallo, ist jemand da?'
>>> 3 * hello + "hört mich jemand?"
'Hallo, Hallo, Hallo, hört mich jemand?'

2.5 Stringindexing


Zeichenketten können indiziert oder auch indexiert werden, wobei das erste Zeichen den Index 0 hat.

>>> example = "Coding is fun"
>>> example[0]
'C'

Indem wir example[0] schreiben greifen wir also auf den ersten Buchstaben des Satzes zu. Der Grund warum der erste Buchstabe mit der Zahl 0 und nicht 1 beginnt, ist historischen Ursprungs. Python ist eine sogenannte “höhere” Programmiersprache und solche Programmiersprachen basieren auf maschinennahen Programmiersprachen wie C oder Assembler. Der Ursprung ist bei diesen Sprachen zu suchen und geht über das Thema dieses Tutorials hinaus. Jedoch ist dieses Verhalten bei den meisten Programmiersprachen üblich und man sollte es daher im Hinterkopf behalten und sich daran gewöhnen. Ich betone das hier und lege großen Wert darauf es anzusprechen, da es eine typische Fehlerquelle beim Programmieren ist, und das nicht nur bei Anfängern.

Indexing funktioniert natürlich auch mit jedem anderen Buchstaben in dem Satz, je nachdem welche Zahl als Parameter übergeben wird.

>>> example[4]
'n'
>>> example[6]
' '
>>> example[7]
'i'
>>> example[9]
' '
>>> example[10]
'f'
>>> example[12]
'n' # last string in sentence

Nun stellt sich die Frage was passiert, wenn wir eine Zahl wählen, die größer ist als die Anzahl der Buchstaben in diesem Satz.

>>> example[13]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: string index out of range

Wie wir sehen ist dies in Python nicht möglich und führt zu einem Fehler. Wir bekommen einen IndexError angezeigt, der uns mitteilt, dass der zu indizierende String nicht so viele Stellen hat und der Zugriff mit dem Index 13 somit nicht gültig ist.

Es ist also nicht möglich einen Index zu wählen, der größer ist als die Anzahl der Zeichen im Satz. Allerdings ist es in Python möglich, dass wir einen negativen Index wählen, wie das folgende Beispiel zeigt:

>>> example[-1]
'n'

Der Index -1 entspricht hier dem letzten Buchstaben des Satzes. Wenn wir also mit negativen Indizes arbeiten, dann “laufen wir den Satz von hinten nach vorne ab”.

Der Satz aus unserem Beispiel hat (inklusive Leerzeichen) genau 13 Zeichen. Wenn wir also den Index -13 wählen, kommen wir erneut beim allerersten Zeichen an.

>>> example[-13]
'C'
>>> example[-12]
'o'
>>> example[-11]
'd'
>>> example[-10]
'i'
>>> example[-9]
'n'
>>> example[-8]
'g'

Wie schon bei der Nutzung von positiven Indizes müssen wir bei negativen Indizes aufpassen, dass wir keinen Index wählen, der größer ist als die Zahl der Zeichen im Satz. Das bedeutet, wenn wir beispielsweise den Index -14 wählen dann bekommen wir erneut einen IndexError angezeigt:

>>> example[-14]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: string index out of range

Wer genau aufgepasst hat dem wird aufgefallen sein, dass wir den letzten Buchstaben des Satzes bei positiven Indizes mit dem Index 12 ansprechen können (example[12] = 'n') und bei negativen Indizes den letzten Buchstaben des Satzes (von hinten gesehen) mit dem Index -13 (example[-13] = 'C'). Der Grund hierfür ist, dass wir bei positiven Indizes mit dem Index 0 starten, um den ersten Buchstaben zu bekommen und bei negativen Indizes mit dem Index -1 starten, um den ersten Buchstaben von hinten gesehen anzusprechen.

Anders ausgedrückt: Wir starten also nicht bei Index -0, da -0 = 0 entspricht, somit müssen wir bei Index -1 starten, damit der Ausdruck für Python eindeutig ist.

Dies muss man bei der Indexierung beachten, da dies eine häufige Fehlerquelle ist.

3. Probiere es selbst aus


Du kannst die Beispiele hier direkt nachvollziehen:

Falls Du Google Chrome nutzt und das Widget nicht korrekt angezeigt wird, musst Du Cookies von Drittanbietern erlauben oder einen anderen Browser verwenden.

4. Typische Prüfungsfragen


Du solltest nun in der Lage sein die folgenden Fragen beantworten zu können. Dies sind unter anderem auch typische Fragen die in Klausuren oder Prüfungen gestellt werden können.

  • Warum führt der folgende Befehl zu einem Fehler?
example = "Coding is fun"
example[0] = 'c'
  • Wie kann man sich den letzten Buchstaben eines Strings ausgeben lassen?
  • Wie kann man sich den ersten Buchstaben eines Strings ausgeben lassen?
  • Was versteht man unter Indexing?
  • Verwendet man für Strings einfache Anführungszeichen oder doppelte Anführungszeichen?
  • Wie bricht man eine Zeile in einem String um?
  • Wie verbindet man Strings miteinander?

5. Zusammenfassung


In diesem Tutorial habe ich Dir Strings in Python vorgestellt. Du kennst nun die grundlegenden Möglichkeiten um mit Strings arbeiten zu können und Du hast gelernt, wie man Strings modifizieren kann.

Hierbei haben wir gelernt

  • was Steuerzeichen sind
  • wie man sich mehrzeilige Strings ausgeben lassen kann
  • wie man Strings miteinander verbindet
  • wie man einzelne Zeichen eines Strings per Indexing ausgeben kann

Code Beispiele zum Thema Python findest Du in meinem GitLab Repository und bei repl.it. Falls Du weitere Informationen zum Thema Python und Programmieren erfahren möchtest, kann ich Dir dieses Buch empfehlen.

Wenn Dir der Beitrag gefallen hat, dann würde ich mich über ein Abonnement bei YouTube und Instagram freuen.

Wenn Du Dir weitere Tutorials anschauen möchtest, kannst Du diese in meinem Blog finden.

Abonniere auch meinen Newsletter, um auf dem neusten Stand zu bleiben und über neue Einträge und Videos als Erster zu erfahren.

Falls Dir noch Dinge unklar sind und Du Fragen oder Anregungen hast, dann schreibe mir eine Nachricht oder einen Kommentar.


Michael Lossagk
Michael Lossagk
Coding Enthusiast
Founder @ TechDiffuse

Vielleicht gefällt dir auch


Share this: