Dein erstes Programm
Kurz gesagt: Ein Programm ist eine Folge von Befehlen, die von oben nach unten ausgeführt werden: In Python gibt print Text aus, # beginnt einen Kommentar, und du startest die Datei mit python.
Problem
Der Computer macht genau, was dasteht
Der Computer errät nicht, was du willst. Er führt Befehle aus, einen nach dem anderen, genau so, wie sie geschrieben sind. Eine Folge solcher Befehle ist ein Programm.
Hier ist ein ganzes Programm. Es gibt zwei Zeilen auf dem Bildschirm aus:
print("Willkommen!")print("Das ist dein erstes Programm.")Willkommen!Das ist dein erstes Programm.Das ist das ganze Programm: zwei Zeilen, ein Befehl pro Zeile. Es gibt keine Hülle darum. Du speicherst sie in einer Datei hello.py und startest sie.
Die Idee
Was im Programm steht
- Das Programm ist die Datei selbst. Python führt ihre Zeilen von oben nach unten aus, von der ersten bis zur letzten.
print(...)gibt den Text in den Klammern aus und springt in eine neue Zeile.- Der Text steht in doppelten Anführungszeichen:
"Willkommen!". Die Anführungszeichen werden nicht ausgegeben. - Jeder Befehl steht in einer eigenen Zeile. Am Zeilenende brauchst du kein Zeichen.
- Die Zeile beginnt ganz am Anfang, ohne Leerzeichen davor. In Python spielen Leerzeichen am Zeilenanfang eine Rolle. Wir nutzen sie in der Lektion über Bedingungen.
Du startest das Programm im Terminal, im Ordner der Datei:
python hello.pyUnter macOS und Linux heißt der Befehl oft python3. Python liest die Datei und führt die Befehle darin aus. Es gibt keinen eigenen Schritt, in dem der Code vorher übersetzt wird: Du schreibst und startest.
Genauer, für Neugierige
- Groß- und Kleinbuchstaben spielen eine Rolle.
Printist nicht dasselbe wieprint, und das Programm hält mit einem Fehler an, wenn es diese Zeile erreicht.
- Text kann auch in einfachen Anführungszeichen stehen:
print('Willkommen!')gibt dasselbe aus. In diesem Kurs schreiben wir doppelte. - In fremdem Code siehst du ganz unten eine Zeile
if __name__ == "__main__":. Sie ist für Dateien, die auch als Teil anderer Programme genutzt werden. Vorerst brauchst du sie nicht. - Python gibt es nicht nur im Terminal. Es gibt auch Editoren, die die Datei per Knopfdruck starten. Im Hintergrund machen sie aber dasselbe:
python hello.py.
Die Idee
Ausgabe mit und ohne Zeilenumbruch
Manchmal willst du mehrere Textstücke in einer Zeile. Dann sagst du print, womit es enden soll: end="" bedeutet „mit nichts“. Der Text wird ausgegeben, und der Cursor bleibt in derselben Zeile.
print("Bestellung ", end="")print("Nr. 1024", end="")print(" ist bestätigt.")print("Lieferung: morgen")Bestellung Nr. 1024 ist bestätigt.Lieferung: morgenDie ersten beiden Zeilen im Code nutzen end="", deshalb kommen „Bestellung“, „Nr. 1024“ und „ist bestätigt.“ zusammen heraus. Nach print ohne end="" beginnt der nächste Text in einer neuen Zeile.
Achte auf die Leerzeichen. Sie stehen in den Anführungszeichen, denn der Computer setzt kein Leerzeichen von selbst.
Folge dem Cursor: Der Text erscheint immer dort, wo er steht.
print("Bestellung ", end="")print("Nr. 1024", end="")print(" ist bestätigt.")print("Lieferung: morgen")Schritt für Schritt, in Worten
- print(…, end="") gibt „Bestellung “ aus, und der Cursor bleibt in derselben Zeile.
- print(…, end="") gibt „Nr. 1024“ aus, und der Cursor bleibt in derselben Zeile.
- print gibt „ ist bestätigt.“ aus, und der Cursor springt in eine neue Zeile.
- print gibt „Lieferung: morgen“ aus, und der Cursor springt in eine neue Zeile.
- Die Leerzeichen stehen in den Anführungszeichen. Der Computer setzt kein Leerzeichen von selbst.
Probier es aus
In wie vielen Zeilen?
Was gibt das Programm aus?
print("Zug ", end="")print("8:15")print("Gleis ", end="")print("3", end="")print()Nach „8:15“ steht print ohne end="", deshalb steht „Gleis“ in einer neuen Zeile. Die letzte Zeile, print(), gibt keinen Text aus. Sie springt nur in eine neue Zeile.
Die Idee
Kommentare: Notizen für Menschen
Manchmal willst du eine Notiz im Code hinterlassen: warum etwas so ist oder was als Nächstes kommt. Du schreibst sie als Kommentar. Der Computer überspringt Kommentare.
#beginnt einen Kommentar bis zum Ende der Zeile.- Ein Kommentar über mehrere Zeilen besteht aus mehreren Zeilen, jede mit
#.
# Der Kassenbon des Cafés.# Die Preise sind in Euro.print("Kaffee 2,50 €")# print("Croissant 1,80 €")print("Summe 2,50 €") # keine Croissants mehrKaffee 2,50 €Summe 2,50 €Die Zeile mit dem Croissant ist Code, aber sie steht hinter #, deshalb wird sie nicht ausgeführt. So schaltest du eine Zeile vorübergehend ab, ohne sie zu löschen.
Ein guter Kommentar sagt, warum, nicht was. Was der Code macht, zeigt er selbst.
Genauer, für Neugierige
In fremdem Code siehst du Text in dreifachen Anführungszeichen, """…""", über mehrere Zeilen. Das ist kein Kommentar. Es ist Text, mit dem das Programm nichts macht. Er dient zur Beschreibung von Funktionen. Für Notizen schreibst du #.
Probier es aus
Was kommt heraus?
Was gibt das Programm aus?
print("9:00 Mathe")# print("10:00 Physik")print("11:00 Geschichte") # danach ist MittagspauseDie ganze zweite Zeile ist ein Kommentar, deshalb wird „Physik“ nicht ausgegeben. In der dritten Zeile beginnt der Kommentar nach dem Befehl: Der Befehl wird ausgeführt, und die Notiz nach # wird übersprungen.
Problem
Das Programm startet nicht
Du hast das Programm geschrieben, du startest es, und es beginnt nicht einmal. Keine einzige Zeile erscheint. Statt einer Ausgabe bekommst du eine Meldung:
print("Willkommen im Kurs!"print("Jetzt geht es los.") File "/home/student/welcome.py", line 1 print("Willkommen im Kurs!" ^SyntaxError: '(' was never closedHier fehlt in der ersten Zeile die schließende Klammer. Bevor Python die erste Zeile ausführt, liest es die ganze Datei und prüft, ob sie nach den Regeln der Sprache geschrieben ist. Wenn nicht, hält es an und führt nichts aus, nicht einmal die Zeilen vor dem Fehler. Das nennt man einen Syntaxfehler (SyntaxError).
Die Idee
So liest du die Meldung
Die Meldung sagt dir drei Dinge: die Datei, die Zeile und was falsch ist.
File "/home/student/welcome.py", line 1 bedeutet die Datei welcome.py (mit dem vollen Pfad dorthin), Zeile 1. Darunter steht die Zeile selbst, und das Zeichen ^ zeigt auf die Stelle, an der Python das Problem bemerkt hat. Die letzte Zeile ist die wichtigste: die Art des Fehlers und was falsch ist. '(' was never closed bedeutet „die ( wurde nicht geschlossen“.
Es gibt auch eine zweite Art von Fehler. Das Programm startet, führt die Zeilen nacheinander aus und hält erst bei der Zeile an, die es nicht ausführen kann:
print("Willkommen im Kurs!")Print("Jetzt geht es los.")Willkommen im Kurs!Traceback (most recent call last): File "/home/student/welcome.py", line 2, in <module> Print("Jetzt geht es los.") ^^^^^NameError: name 'Print' is not defined. Did you mean: 'print'?Print mit großem Anfangsbuchstaben ist ein Name, den Python nicht kennt (NameError). Python merkt das erst, wenn es diese Zeile erreicht, deshalb ist die erste Zeile schon ausgegeben. Wieder nennt es die Datei und die Zeile, und ganz unten steht die Art des Fehlers. Did you mean: 'print'? ist ein Hinweis: „Meintest du das?“Die häufigsten Fehler am Anfang:
- ein Anführungszeichen oder eine Klammer ist geöffnet, aber nicht geschlossen (SyntaxError);
- Leerzeichen am Zeilenanfang (IndentationError: unexpected indent);
- ein Großbuchstabe statt eines Kleinbuchstabens:
Print(NameError, wenn das Programm die Zeile erreicht).
Python zeigt immer nur einen Syntaxfehler auf einmal. Du behebst ihn, startest neu, und erst dann siehst du den nächsten, falls es einen gibt.
Genauer, für Neugierige
- Python sagt dir, wo das Problem bemerkt wurde. Manchmal liegt der Fehler etwas weiter oben.
- Es gibt auch Fehler, die niemand abfängt: Das Programm startet, macht aber etwas anderes, als du willst. Die jagen wir in fast jeder Lektion.
Probier es aus
Finde den Fehler
Das Programm soll den Plan der Prüfung ausgeben. Es startet nicht: Nicht einmal die erste Zeile erscheint. In welcher Zeile ist der Fehler?
Wähle die Zeile mit dem Fehler.
) für einen Teil des Textes und erreicht das Zeilenende ohne schließendes Anführungszeichen: SyntaxError: unterminated string literal („nicht geschlossener Text“). Deshalb erscheint nicht einmal „Uhrzeit: 10:30“ aus Zeile 1. Die Korrektur ist print("Raum: 204").Übung
Deine ersten Programme
Löse die Aufgaben in deinem Editor. Jede ist ein eigenes Programm. Vergleiche deine Ausgabe mit dem Beispiel, Zeichen für Zeichen.
1. Hello World. Das traditionelle erste Programm. Gib aus:
Hello, World!2. Visitenkarte. Gib eine Visitenkarte aus drei Zeilen aus: Name, Beruf und E-Mail. Du kannst auch deine eigenen Daten nehmen.
Maria IvanovaWebentwicklerinmaria@example.com3. Rahmen. Gib das heutige Menü der Kantine in einem Rahmen aus Sternchen aus. Achte auf die Leerzeichen, damit die rechte Seite gerade wird.
***************** Heute: Suppe ** 5,40 € *****************Weitere Aufgaben
- Ein Satz in drei Teilen. Gib mit drei Befehlen
print(..., end="")und einemprintin einer Zeile „Der Shop hat von 9:00 bis 19:00 geöffnet.“ aus. - Ein Stundenplan mit Kommentar. Gib einen Stundenplan mit vier Stunden aus. Schalte dann die dritte Zeile mit
#ab, ohne sie zu löschen, und füge einen Kommentar hinzu, warum.
- Ein Fehler mit Absicht. Entferne die schließende Klammer aus einer Zeile von Aufgabe 1, dann ein Anführungszeichen, dann schreib
Printmit großem Anfangsbuchstaben. Lies jedes Mal, was Python sagt.
Test
Teste dich
Verwandte Lektionen
Abschnitt „Verwandte Lektionen“- Geht weiter in: Variablen und Typen · Eingabe und Ausgabe · Operatoren und Arithmetik · Bedingungen
- Aufgaben zum Thema: Sprachgrundlagen