3: Kommentare und Anführungszeichen

Ein Computerprogramm ist in einer Computersprache geschrieben - damit der Computer es verstehen kann. Dummerweise sind Computersprachen für den Menschen relativ schlecht lesbar. Um das zu auszugleichen, kann man Notizen in das Programm einfügen, die der Computer ignoriert. Man nennt diese Kommentare.

In Python beginnt ab dem #-Symbol ("Raute-Zeichen" oder "Hash") ein Kommentar. Der Rest dieser Zeile wird dann vom Computer ignoriert. Hier ist ein Beispiel:

Beispiel
Die Auswirkungen von Kommentaren

Da die zweite Zeile mit dem #-Symbol beginnt, ignoriert Python diese komplett, so dass - wie du sehen kannst - die Nummer 2 nicht ausgegeben wird. Typischerweise nutzt man Kommentare,

  • um Teile des Programms zu erklären, damit andere sie nachher verstehen können;
  • um "zu erledigen"-Notizen in größeren Programmen zu hinterlassen, damit man nicht vergisst, dass da noch etwas hin gehört;
  • um Code zeitweise zu deaktivieren ("auskommentieren"), ohne ihn zu löschen; dann kann man ihn später leicht wieder aktivieren.

Diese Übung zeigt, wie Kommentare genutzt werden könnten. Wenn du zu viel editiert hast, kannst du das Original zurückbringen, indem du Code zurücksetzen anklickst.

Programmierübung: Second Guessing
Debugge dieses Programm, so dass es die Anzahl der Sekunden in einer Woche ausgibt.

Zeichenketten

Zeichenketten (auch Strings) sind Folgen von Buchstaben und Zahlen oder in anderen Worten: Text(-ausschnitte). Sie sind umgeben von Anführungsstrichen, um sie von normalen Befehlen zu unterscheiden. In Lektion 0 kam bereits die Zeichenkette "Hallo, Welt!" vor. Wenn ein # in einer Zeichenkette vorkommt, ist das nicht der Anfang eines Kommentars:

Beispiel
Ein String, der ein #-Symbol enthält.

Das kommt daher, dass Teile zwischen Anführungsstrichen "" exakt kopiert und nicht interpretiert werden. Genauso wird print("3 + 4") nicht 7 ausgeben, sondern eben 3 + 4.

Maskierungen

Doch wie bekommt man Anführungsstriche " in eine Zeichenkette? Wenn man print("I said "Wow!" to him") benutzt erzeugt das einen Fehler: Das Problem ist, dass Python die Zeichenkette "I said " gefolgt von Wow! (was keine Zeichenkette ist) sieht. Das ist nicht das, was wir wollen!

Python hat zwei einfache Wege, um Anführungsstriche in Zeichenketten einzutragen.

  • Eine Zeichenkette darf auch in einfache Anführungsstriche (auch Apostrophe genannt) gesetzt werden: 'blah blah'. Dann kann man problemlos doppelte Anführungsstriche einsetzen: 'I said "Wow!" to him.'
  • Du kannst Rückwärtsschrägstriche \ gefolgt von Anführungsstrichen nutzen (" oder '). Das nennt man Maskierung. Python wird die Anführungsstriche dann in die Zeichenkette einsetzen und den Rückwärtsschrägstrich entfernen. Hier ist ein Beispiel:
    Beispiel
    Rückwärtsschrägstriche maskieren Anführungsstriche, werden aber nicht angezeigt

Aufgrund der Maskierungsfähigkeit sind Rückwärtsschrägstriche (\) auch spezielle Zeichen. Um ein Rückwärtsschrägstrich in die Zeichenkette zu bekommen, muss auch dieser maskiert werden - mit einem zweiten Rückwärtsschrägstrich, so dass du schreiben musst:

Multiple-Choice-Übung: Maskierungszeichen
Was ist die Ausgabe von print("Backslashes \\ and single quotes \' and double quotes \" and pound signs # are awesome!")
Richtig!

Programmierübung: The Great Escape
Schreibe ein Programm, das die folgende Ausgabe erzeugt:

A double-quote's escaped using a backslash, e.g. \"
Hinweis: Es gibt mehr als einen Weg, dieses Problem zu lösen (wie sonst auch)! Zum Beispiel könntest du die gesamte Zeichenkette in einfache oder doppelte Anführungsstriche setzen. Maskierung ist jedoch in beiden Fällen nötig. Zur Übung solltest du beides ausprobieren. Kannst du das Problem auch noch auf eine dritte Weise lösen?

Es gibt weitere Maskierungen, wie zum Beispiel den Zeilenumbruch, doch die brauchen wir jetzt nicht näher diskutieren. Wir sind jetzt bereit für die nächste Lektion.