Zum Inhalt
wannacode

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:

hello.py
print("Willkommen!")
print("Das ist dein erstes Programm.")
Ausgabe
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:

Terminal
python hello.py

Unter 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. Print ist nicht dasselbe wie print, 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")
Ausgabe
Bestellung Nr. 1024 ist bestätigt.
Lieferung: morgen

Die 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
  1. print(…, end="") gibt „Bestellung “ aus, und der Cursor bleibt in derselben Zeile.
  2. print(…, end="") gibt „Nr. 1024“ aus, und der Cursor bleibt in derselben Zeile.
  3. print gibt „ ist bestätigt.“ aus, und der Cursor springt in eine neue Zeile.
  4. print gibt „Lieferung: morgen“ aus, und der Cursor springt in eine neue Zeile.
  5. 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()
Antwort

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 mehr
Ausgabe
Kaffee 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 Mittagspause
Antwort

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:

welcome.py
print("Willkommen im Kurs!"
print("Jetzt geht es los.")
Meldung von Python
File "/home/student/welcome.py", line 1
print("Willkommen im Kurs!"
^
SyntaxError: '(' was never closed

Hier 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:

welcome.py
print("Willkommen im Kurs!")
Print("Jetzt geht es los.")
Ausgabe und Meldung
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.

Ü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:

Ausgabe
Hello, World!

2. Visitenkarte. Gib eine Visitenkarte aus drei Zeilen aus: Name, Beruf und E-Mail. Du kannst auch deine eigenen Daten nehmen.

Beispielausgabe
Maria Ivanova
Webentwicklerin
maria@example.com

3. Rahmen. Gib das heutige Menü der Kantine in einem Rahmen aus Sternchen aus. Achte auf die Leerzeichen, damit die rechte Seite gerade wird.

Ausgabe
****************
* Heute: Suppe *
* 5,40 € *
****************

Weitere Aufgaben

  • Ein Satz in drei Teilen. Gib mit drei Befehlen print(..., end="") und einem print in 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 Print mit großem Anfangsbuchstaben. Lies jedes Mal, was Python sagt.

Test

Teste dich

1. Wo beginnt die Ausführung des Programms?
2. Was ist der Unterschied zwischen print("a", end="") und print("a")?
3. Was macht der Computer mit einem Kommentar?
4. Python meldet einen SyntaxError in Zeile 3. Was bedeutet das?
5. Welche Zeile gibt Hallo aus?

Erstellt von Ivo Gergov im Rahmen der Kampagne von Evo Tech für zugängliche Programmierausbildung ·