Der obligatorische Einstieg
Der »klassische« Einstieg ins Programmieren ist ein Hallo Welt-Programm. Ein solches Programm macht nichts weiter, als »Hallo Welt« auf der Kommandozeile oder anderswo auszugeben. In Python bekommen wir das mit einer Zeile im REPL hin:
>>> print('Hallo Welt!')
Gib diese Zeile im REPL ein, und drücke die Eingabetaste.
Sehr schön! Herzlichen Glückwunsch zu deinem vielleicht ersten Schritt in Python!
Die Fehlermeldung dürfte so aussehen:
File "<stdin>", line 1
>>> print('Hallo Welt!')
^^
SyntaxError: invalid syntax
Wenn du den Prompt mit eingibst, wird dieser Fehler angezeigt. Der Prompt sind die drei Pfeile (>>>
), und Python kann ihn nicht als irgendeine sinnvolle Eingabe interpretieren. Lass die drei Pfeile bei der Eingabe einfach weg!
In neueren Versionen von Python wird die Codezeile angezeigt, die Probleme verursacht, und mit einer Markierung (^^
) versehen.
Sollte es das nicht gewesen sein, versuche die Fehlermeldung noch genauer zu verstehen. Solltest du selbst nicht darauf kommen, was gemeint ist (und die Pfeile es nicht anzeigen), kannst du mit der Fehlermeldung eine Internetsuche starten.
Die Fehlermeldung dürfte so oder ähnlich aussehen:
File "<stdin>", line 1
print(´Hallo Welt!´)
^
SyntaxError: invalid character '´' (U+00B4)
Hier hat das Anführungszeichen Probleme bereitet. In Python können Paare von einfachen (' '
) oder doppelten (" "
) Anführungszeichen verwendet werden – um einen Text auszugeben, werden sie auch zwingend benötigt. (Die meisten Pythonisten bevorzugen im Übrigen die einfachen Anführungszeichen… 😁) Manche Zeichen sehen den einfachen Anführungszeichen ähnlich, und das führt dann zu Problemen. Auf deutschen Tastaturen sind die doppelten Anführungszeichen üblicherweise auf der Taste 2
, und die einfachen auf der Taste mit dem #
(und sind mit der Umschalttaste zu erreichen).
In neueren Versionen von Python wird die Codezeile angezeigt, die Probleme verursacht, und mit einer Markierung (^
) versehen.
Sollte es das nicht gewesen sein, versuche die Fehlermeldung noch genauer zu verstehen. Solltest du selbst nicht darauf kommen, was gemeint ist (und die Pfeile es nicht anzeigen), kannst du mit der Fehlermeldung eine Internetsuche starten.
Die Fehlermeldung dürfte so oder ähnlich aussehen:
File "<stdin>", line 1
print(Hallo Welt!)
^^^^^^^^^^
SyntaxError: invalid syntax. Perhaps you forgot a comma?
Hier fehlen Anführungszeichen! In Python können Paare von einfachen (' '
) oder doppelten (" "
) Anführungszeichen verwendet werden – um einen Text auszugeben, werden sie auch zwingend benötigt. (Die meisten Pythonisten bevorzugen im Übrigen die einfachen Anführungszeichen… 😁) Auf deutschen Tastaturen sind die doppelten Anführungszeichen üblicherweise auf der Taste 2
, und die einfachen auf der Taste mit dem #
(und sind mit der Umschalttaste zu erreichen).
In neueren Versionen von Python wird die Codezeile angezeigt, die Probleme verursacht, und mit einer Markierung (^^^^^
) versehen.
Sollte es das nicht gewesen sein, versuche die Fehlermeldung noch genauer zu verstehen. Solltest du selbst nicht darauf kommen, was gemeint ist (und die Pfeile es nicht anzeigen), kannst du mit der Fehlermeldung eine Internetsuche starten.
Konntest du schon verstehen, wie diese Programmzeile funktioniert?
Code erzählt immer auch eine Geschichte.
Wie lässt sich diese Ausgabe erzeugen?
Das ist leider falsch – Texte wie dieser müssen von Anführungszeichen umschlossen werden!
Gut gemacht, das ist richtig!
Viele Pythonisten bevorzugen zwar einfache Anführungszeichen, aber diese Lösung ist auch richtig.
Das ist leider falsch – diese mit der Akzenttaste erzeugten Zeichen sind Akzente, wir brauchen aber Anführungszeichen!
In Python lassen sich einfache (' '
) oder doppelte (" "
) Anführungszeichen verwenden, daher gibt es hier zwei richtige Lösungen!
Wie sieht es hiermit aus:
This was a preview of chapter 2 of Programmieren als Werkzeug für Lehrerinnen und Lehrer. To read all chapters, buy the course for $10. Yours forever.
Code 'erzählt' immer auch eine Geschichte.
Welche Codezeile würde diese Ausgabe erzeugen?
Das stimmt leider nicht.
Wenn du die Zeile ausführst, wird dir eine SyntaxError: invalid syntax
-Fehlermeldung angezeigt. Python interpretiert die Zeichen zwischen den ersten beiden einfachen Anführungszeichen als so genannte Zeichenkette. Nach einer solchen Zeichenkette könnte der print
-Funktion eine weitere übergeben werden, allerdings mit +
zusammengefügt, oder mit ,
getrennt. Das Wort »erzählt« passt hier aber nicht, daher wird der Syntaxfehler geworfen, wie Python-Programmierer_innen sagen.
Mit einer der beiden anderen hier angeführten Antwortmöglichkeiten lässt sich das Problem zum Glück umgehen.
Das würde funktionieren. In Python können einfache oder doppelte Anführungszeichen verwendet werden. Indem du beide geschickt kombinierst, kannst du so genannte Zeichenketten mit Anführungszeichen verwenden.
Alternativ kannst Du problematische Zeichen evakuieren. Das geht in Python mit dem Backslash, der dem Zeichen als Escape-Sequenz vorangestellt wird. (Die dritte Antwort hätte auf diese Weise ebenfalls funktioniert.)
Diese etwas merkwürdig anmutende Schreibweise würde funktionieren. Die Backslash-Zeichen \
evakuieren das genau nächste Zeichen, und auf diese Weise lassen sich die einfachen Anführungszeichen in den String mit aufnehmen, obwohl sie ihrerseits von einfachen Anführungszeichen umschlossen werden.
Alternativ können in Python einfache oder doppelte Anführungszeichen verwenden. Indem du beide wie in der zweiten Antwort miteinander kombinierst, kannst du so genannte Zeichenketten mit Anführungszeichen verwenden.
Nun kennst du bereits die erste eingebaute Python-Funktion: die print
-Funktion. Sie nimmt etwas – z.B. eine Zeichenkette entgegen – und gibt dies auf der Konsole aus. Das Entgegennehmen passiert in den Klammern, die hinter print
folgen müssen, und auf der Konsole ausgeben heißt, dass der Text am Bildschirm angezeigt wird.
Zeichenketten heißen auf englisch String. Sie sind ein wichtiger sogenannter Datentyp, den wir immer dann brauchen, wenn wir Texte oder Wörter mit unserem Programm bearbeiten wollen, oder Eingaben unserer Nutzer_innen entgegennehmen möchten. So gesehen ließe sich vielleicht auch einfach »Wort« sagen.
Dass etwas eine Zeichenkette ist, bedeutet aber noch etwas mehr. Wenn wir Python mitteilen, dass etwas eine Zeichenkette ist, hilft uns Python, indem es unter anderem überprüft, dass wir nicht beispielsweise zu einem Wort eine Zahl hinzuzählen. Das kann bereits passieren, bevor das Programm läuft, und so wird unser Programm etwas sicherer und stabiler – es wird nicht wegen solcher Fehler abstürzen.
Das geht z.B. indem du einfache oder doppelte Anführungszeichen verwendest – das genügt bereits.
Wir könnten vielleicht von einem flüchtigen Programm sprechen: sobald du den REPL verlässt, lässt sich das darin ausgeführte Programm nicht mehr so schnell wieder herholen. Es lassen sich zwar auch längere Sequenzen von Code im REPL eingeben, doch wird das schnell unpraktisch, wenn du ein Programm mehrmals ausführen möchtest.
Python-Programmierer_innen nutzen den REPL trotzdem oft, und probieren kleine Code-Schnipsel aus. So lassen sich Unsicherheiten, was das Programm tatsächlich macht, stark verringern.
Du schreibst ihn in eine einfache Textdatei. Im Gegensatz zu Dateien, die normalen Text enthalten, bekommen Dateien mit Python-Code allerdings eine andere Dateiendung: also nicht mein_programm.txt
, sondern mein_programm.py
. Auf diese Weise speicherst du deinen Code ab.
Versuche es einmal! Erstelle in Thonny eine neue Datei (im Menü »Datei«), schreibe diese Zeile hinein
print('Hallo Welt!')
und speichere sie unter dem Namen hallo.py
ab.
Ohne Thonny würdest du auf der Kommandozeile in das richtige Verzeichnis wechseln, und dort python hallo.py
eingeben – dann würde dein Programm ausgeführt. Mit Thonny geht es noch schneller: klicke einfach auf den grünen Knopf mit dem weißen Dreieck, oder auf die Taste F5.
Kannst du »Hallo Welt!« in der Thonny-Konsole sehen?
Herzlichen Glückwunsch! Dann hast du gerade dein erstes richtiges Programm laufen lassen!
Dann versuche es noch einmal: Vielleicht musst du in Thonny erst eine neue Datei anlegen. Füge dort die Zeile print('Hallo Welt!')
ein. Selbst wenn kein mit »Kommandozeile« betiteltes Fenster zu sehen sein sollte: beim Ausführen sollte eines sichtbar werden. Sollte die Ausführung nicht funktionieren, kannst du dir unter »Ansicht« das Fenster »Assistent« einblenden lassen – hier findest du oft gute Hinweise. Wird ein Fehler geworfen, lies’ dir die Fehlermeldung genau durch.
Zeit zum…
Üben
Welche der folgenden Programmzeilen wirft den Fehler SyntaxError: unterminated string literal
? (Wenn du nicht sicher bist: probiere es aus, und versuche die Fehlermeldungen zu verstehen!)
Hier liegt zwar auch ein Syntaxfehler vor, aber kein »un-terminiertes String-Literal« (also: kein unabgeschlossenes Zeichenkettenliteral). Versuche es nochmal!
Hier liegt zwar auch ein Syntaxfehler vor, aber kein »un-terminiertes String-Literal« (also: kein unabgeschlossenes Zeichenkettenliteral).
Die Python-Fehlermeldung ist hier sehr hilfreich:
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?`
Ja, hier wurden die Klammern vergessen. Versuche es nochmal!
Diese Antwort ist richtig! Ohne zweites Anführungszeichen ist ein Anführungszeichen kein Anführungszeichenpaar, und damit die Zeichenkette ohne Ende – genau das sagt die Fehlermeldung.
Das war das erste Kapitel – hoffentlich konntest du etwas mitnehmen. Sobald du übrigens eine Idee hast (auch im weiteren Verlauf des Kurses): versuche, sie als Programm umzusetzen – das wird dir helfen, die Sprache zu lernen.
Next in Programmieren als Werkzeug für Lehrerinnen und Lehrer:
Einen zufälligen Schüler oder eine zufällige Schülerin auswählen
Python hat batteries included – hier nutzen wir sie, um eine Zufallswahl zu treffen.