Mit dem Rechner reder – Level 1-1
Hallo Welt!
Öffne deine IDE, und schreibe folgenden Code in eine neue Datei:
print('Hallo Welt!')
Bevor du das Programm laufen lassen kannst, solltest Du es abspeichern, zum Beispiel unter dem Namen hallo.py. Drücke dann zum Starten die Taste F5 (oder in Thonny den grünen Startknopf).
Wähle den Menüpunkt Speichern im Menü Datei oder tippe die Tastenkombination Strg+s. Suche oder erstelle einen Ordner, den Du leicht wiederfindest, und gib den Programmnamen ein – z.B. hallo.py. Speichere das Programm mit Klick auf Ok.
Um das Programm zu starten, klicke den grünen Startknopf oder die Taste F5.
Herzlichen Glückwunsch! Du hast gerade Dein erstes Python-Programm geschrieben, abgespeichert und laufen gelassen!
print()
ist eine sogenannte Funktion, und sie gibt das, was in den Klammern steht, auf dem Bildschirm (auf der Kommandozeile) aus. Hier war das die Zeichenkette 'Hallo Welt!'. (Zeichenketten werden der Funktion in Python mit einfachen ''
oder doppelten ""
Anführungszeichen übergeben.)
Im Prinzip ja. (Später werden wir eigene Funktionen schreiben, die dann nicht sofort ausgeführt werden, sondern erst, wenn wir sie aufrufen.)
Das Programm steht in einer einfachen Textdatei mit der Endung .py. Ist Python auf dem Rechner installiert, kann es recht einfach ausgeführt werden.
Weil dein erstes Programm nur eine Zeile lang ist, hättest Du es auch sehr einfach im REPL laufen lassen können. (In Thonny lässt sich ein REPL ja im unteren Bereich des Fensters anzeigen, er ist dann mit >>>
gekennzeichnet. Versuche es einmal! Wenn Du print('Hallo Welt!')
dort eingibst und Enter drückst, sollte genau das gleiche wie beim Ausführen deines Programmes passieren.
Siehst du den REPL? Falls nicht, wähle im Menü Ansicht den Punkt Kommandozeile – dann sollte er zu sehen sein.
Im REPL wird dein Code vom Computer gelesen (read), ausgewertet (evaluate) und das Ergebnis am Bildschirm ausgegeben (print). Dann wird das ganze wiederholt – in einer Art Schleife (daher loop).
Python–Programmiererinnen und –Programmierer probieren im REPL erst einmal kleine Codeteile aus, bevor sie sie ins Programm aufnehmen.
Hilfreich ist auch die Möglichkeit, einmal eingegebene Anweisungen mit der Pfeiltaste hoch wieder hervorzuholen.
Möchtest du dann dein Programm dauerhaft abspeichern, etwa um daran am nächsten Tag weiterzuarbeiten, solltest du es aber auf jeden Fall in einer Datei abspeichern.
Das stimmt! Wie wäre es damit?
Mit der print()
-Funktion lässt sich eine Menge anstellen. Schreibe ein Programm, das das folgendes Bild ausgibt:
*
***
*****
*******
*
Geschafft?
Sehr schön!
Zeichenketten können auch mit Leerzeichen beginnen:
print(' *')
Kommst du nun zurecht?
Dein Programm wird Zeile für Zeile abgearbeitet. Wenn in jeder Zeile eine print()
-Funktion aufgerufen wird, die nur wenig Text enthält, wird dieser Text auch Zeile für Zeile ausgegeben. (print
sorgt von sich aus für einen Zeilenumbruch.)
print(' *')
print(' ***')
Sieht dein Code auch so aus? Damit sollte es klappen:
print(' *')
print(' ***')
print(' *****')
print('*******')
print(' *')
Sieh’ dir doch einmal diesen Code an. Was wird hier auf der Kommandozeile ausgegeben?
print(3 * ' ' + '*')
print(2 * ' ' + 3 * '*')
print(' ' + 5 * '*')
print(7 * '*')
print(3 * ' ' + '*')
Das ist doch…
Das +
-Zeichen (Programmierer_innen sagen auch: der +
-Operator) kann nicht nur Zahlen zusammenrechnen, sondern auch Zeichenketten zusammenkleben. (Programmierer_innen sagen: konkatenieren). Analog dazu kann der *
-Operator nicht nur multiplizieren, sondern auch noch eine beliebige Anzahl von anderen Zeichenketten vervielfacht hintereinanderhängen.
Gib den Code einmal in deiner IDE ein und lass ihn laufen. Variiere auch die Zahlen und sieh’ dir an, wie sich das Bild verändert. Klicke auf weiter, wenn du damit fertig bist.
Wie merkt sich der Computer Dinge?
Gib folgendes im REPL ein: (Setze statt 'Franz' deinen eigenen Namen ein.)
>>> name = 'Franz'
Dann, als nächste Zeile:
>>> print('Hallo', name)
Jetzt sollte dein Computer dich nett begrüßt haben – hat das geklappt?
Sie dir den Code noch einmal genau an. Hast du alles genau so abgetippt? Den Prompt (>>>
) darfst du nicht mit eingeben, und die Groß- und Kleinschreibung ist wichtig… auch die Anführungszeichen darfst du nicht vergessen!
Klicke auf den Button, wenn die Begrüßung geklappt hat.
Mit der ersten Zeile name = 'Franz'
wird einer sogenannten Variablen ein Wert zugewiesen. (Hier ist das eine Zeichenkette, nämlich das Wort 'Franz'. Variablen können ansonsten auch viele andere Dinge zugewiesen werden, z.B. Zahlen.)
Mit der zweiten Zeile rufen wir die print()
-Funktion auf. Wir übergeben ihr die Zeichenkette 'Hallo' und unsere Variable name
(in der ebenfalls eine Zeichenkette steckt). Python fügt (mit dem Komma) automatisch ein Leerzeichen ein und gibt das ganze auf dem Bildschirm aus. (Statt dieser Schreibweise hätten wir auch print('Hallo ' + name)
schreiben können – in diesem Fall müssen wir das Leerzeichen selbt hinzufügen.)
Nun werden wir eine Variable nutzen, um mit dem Computer zu reden.
Übernimm folgende zwei Zeilen in eine neue Datei: (Übrigens ist es immer eine gute Idee, den Code nicht zu kopieren, sondern abzutippen – dabei bekommst du noch genauer mit, was im Programm passiert.)
name = input('Wie heißt Du? ')
print('Hallo', name)
Bevor du das Programm ausführst, überlege, was hier wohl passieren wird! Von der print()
-Funktion solltest du schon eine Vorstellung haben, doch was bedeutet input()
?
Lasse dann das Programm laufen (Abspeichern nicht vergessen), und überprüfe, ob du richtig lagst!
Was passiert hier?
name
ist wieder eine Variable. Wie echte Pythonistas schreiben wir das Wort klein. Sich gute Namen für Variablen auszudenken, kann manchmal sehr schwierig sein, doch hier speichert die Variable name
einen Namen – das sollte doch verständlich sein…
Das =
weist unserer frischen Variable einen Wert zu. Vorsicht! Damit unterscheidet es sich sehr vom mathematischen =, das Gleichheit bedeutet. Beim =
in Python wird zunächst ausgewertet, was auf der rechten Seite steht, und das Ergebnis dieser Auswertung der linken Seite zugewiesen. Deshalb ließen sich beim mathematischen = die Seiten vertauschen, während beim Programmieren das Programm dann nicht mehr richtig funtkionieren würde…
input()
nimmt ähnlich wie print()
etwas entgegen. Hier ist das die Zeichenkette 'Wie heißt Du?'
, die wir zwischen die Klammern schreiben. Im Gegensatz zu print()
gibt input()
aber etwas zurück, und zwar eine Eingabe, die ein Mensch macht. Deshalb wartet das Programm nach der Ausgabe von Wie heißt Du? auf eine Eingabe.
Das überprüfen wir nicht… wenn jemand z.B. »Gurkensalat« eingibt, wird unser Programm ihn auch so anreden…
Die nächste Zeile kennen wir schon! Sie gibt Hallo und den Wert unserer Variablen name
aus. (Selbst wenn dieser Wert »Gurkensalat« ist!) Diesmal wurde der Variablen allerdings erst während das Programm lief ein Wert zugewiesen!
Bereit für etwas nerdiges Programmierer_innen-Wissen?
Das, was eine Funktion (wie input()
oder print()
) innerhalb der Klammern entgegennimmt, wird auch als Argument bezeichnet. Später wirst du auch den Begriff Parameter kennenlernen, wenn du selbst Funktionen schreiben wirst und Argumente einsammeln möchtest.
Das kommt mit der Zeit, wenn du dein Wissen über Variablen häufiger verwendest. Probier doch einmal folgendes:
Erweitere das Programm, so dass sich bei der Ausführung folgender »Dialog« ergeben könnte:
Wie heißt Du? Jan
Hallo Jan
Wie alt bist Du? 42
Du bist also 42 Jahre alt.
Konntest Du diese Aufgabe erledigen?
Du solltest eine zweite Variable einführen:
name = input('Wie heißt Du? ')
print('Hallo', name)
alter =
Was muss auf die rechte Seite vom =
-Zeichen?
Na, wir brauchen noch einmal die input()
-Funktion, und übergeben ihr die Frage, die wir stellen wollen:
name = input('Wie heißt Du? ')
print('Hallo', name)
alter = input('Wie alt bist Du?')
Wie sieht es jetzt aus?
Dafür gibt es (mindestens) zwei Möglichkeiten. Eine sieht so aus:
print('Du bist also', alter, 'Jahre alt.')
Eine andere nutzt das +
:
print('Du bist also ' + alter + ' Jahre alt.')
Fertig?
Sehr schön! Dein Programm sieht vermutlich in etwa so aus:
name = input('Wie heißt Du? ')
print('Hallo', name)
alter = input('Wie alt bist Du?')
print('Du bist also ' + alter + ' Jahre alt.')
Kleine Pause?
Bis bald!