Funktionen aufrufen
Um eine Funktion auszuführen, rufst du sie auf: Du schreibst ihren Namen gefolgt von Klammern:
def hallo_sagen():
print("Hallo!")
print("Einen schönen Tag noch!")
hallo_sagen()Das gibt aus:
Hallo!
Einen schönen Tag noch!Wenn Python an einen Aufruf kommt, springt es in die Funktion, führt ihren Rumpf von oben nach unten aus und macht dann in der Zeile nach dem Aufruf weiter. Du kannst eine Funktion beliebig oft aufrufen:
def hallo_sagen():
print("Hallo!")
print("Start")
hallo_sagen()
hallo_sagen()
print("Ende")Das gibt aus:
Start
Hallo!
Hallo!
EndeZuerst geht Python an der Definition vorbei und merkt sich nur die Funktion. Dann gibt es Start aus, führt den Rumpf der Funktion zweimal aus und gibt schließlich Ende aus. Beachte, dass die Aufrufe nicht eingerückt sind: Sie gehören nicht zum Rumpf. Die Leerzeile nach der Funktion ist nicht nötig, aber sie macht das Programm leichter lesbar.
Python liest ein Programm von oben nach unten, deshalb muss eine Funktion definiert sein, bevor man sie aufruft. Dieses Programm ruft tschuess_sagen() schon in der ersten Zeile auf, wenn Python die Funktion noch nicht kennt:
tschuess_sagen()
def tschuess_sagen():
print("Tschüss!")Es endet mit einem Fehler:
Traceback (most recent call last):
File "<exec>", line 1, in <module>
NameError: name 'tschuess_sagen' is not definedDarum definieren wir Funktionen zuerst, meist am Anfang des Programms, und rufen sie unterhalb ihrer Definitionen auf.
Achte auf zwei weitere häufige Fehler:
- Vergessene Klammern.
hallo_sagenohne sie ruft die Funktion nicht auf, es erwähnt sie nur, deshalb passiert nichts, nicht einmal ein Fehler. Undprint(hallo_sagen)ruft sie auch nicht auf: Es gibt nur etwas wie<function hallo_sagen at 0x...>aus. - Ein anderer Name. Der Name im Aufruf muss genau derselbe sein wie in der Definition, auch in der Groß- und Kleinschreibung. Deshalb endet
Hallo_sagen()mit dem FehlerNameError: name 'Hallo_sagen' is not defined. Did you mean: 'hallo_sagen'?
So schreibst du es:
Anweisungen
- 1
Rufe unter der Funktion
erste_funktiondreimal auf. - 2
Füge dem Rumpf der Funktion eine zweite Zeile hinzu:
print("Funktionen sind toll!"). Führe das Programm aus: Jeder der drei Aufrufe gibt jetzt beide Zeilen aus. Du hast den Code an einer einzigen Stelle geändert, und alle drei Aufrufe tun etwas Neues. Dafür sind Funktionen da.