Eigene Funktionen schreiben · Übung
Eine Funktion definieren und aufrufen
Deine erste Funktion übernimmt eine feste Aufgabe. Sie hat noch keine Parameter und liefert dem aufrufenden Code noch kein nutzbares Ergebnis. So kannst du dich auf den Aufbau einer Definition konzentrieren.
def show_welcome():
print("Welcome to the trail.")
Lies die erste Zeile von links nach rechts:
defsagt Python, dass du eine Funktion definierst.show_welcomeist der Name der Funktion.In
()werden später die Parameter stehen. Leere Klammern bedeuten, dass diese Funktion keine Informationen erwartet.:leitet den eingerückten Funktionskörper ein.
Der Funktionskörper gehört zur Funktion:
print("Welcome to the trail.")
Die gleiche Einrückung um vier Leerzeichen, die du für if-Anweisungen und Schleifen verwendet hast, kennzeichnet die Zeilen, die zur Funktion gehören.
Die Funktion aufrufen
Nachdem Python die Definition erreicht hat, kannst du die Funktion aufrufen, indem du ihren Namen gefolgt von Klammern schreibst:
Der Funktionskörper läuft bei jedem Aufruf einmal. Die Definition selbst führt weiterhin keine Zeile des Funktionskörpers aus.
Python muss den Namen zuerst kennen
Programme laufen von oben nach unten. Diese Reihenfolge funktioniert:
def show_welcome():
print("Welcome to the trail.")
show_welcome()
Diese Reihenfolge funktioniert nicht:
show_welcome()
def show_welcome():
print("Welcome to the trail.")
In der ersten Zeile hat Python die Definition noch nicht erreicht, deshalb existiert der Name show_welcome nicht. Das Ergebnis ist ein NameError.
In einem kurzen Programm stehen Funktionsdefinitionen meistens weit oben und die Aufrufe, die die Arbeit starten, darunter.
Ein Aufruf verändert vorübergehend, wo Python arbeitet
Wenn Python show_welcome() erreicht, wechselt es in den Funktionskörper. Nach dessen Ende kehrt Python zur Zeile nach dem Aufruf zurück.
Die Ausgabe zeigt die tatsächliche Reihenfolge des Programms:
Before the call
Ding!
After the call
Dieser Wechsel in eine Funktion und zurück zum aufrufenden Code ist der grundlegende Ablauf hinter jeder Funktion, die du schreiben wirst.
Der Platzhalter im nächsten Startcode
Python verlangt nach jeder def-Zeile einen eingerückten Funktionskörper. In der nächsten Übung enthält der noch unvollständige Funktionskörper diesen vorübergehenden Platzhalter:
def describe_trip(name, place):
pass
pass bedeutet „hier nichts tun“. Damit bleibt unvollständiger Startcode gültiger Python-Code. Ersetze ihn durch den eigentlichen Funktionskörper, den die Übung verlangt. Eine Funktion, die nur pass erreicht, erledigt keine nützliche Arbeit und gibt kein nutzbares Ergebnis zurück.
Welche erste Zeile definiert korrekt eine Funktion namens show_map, die keine Informationen erwartet?
Aufgabe
Definiere eine Funktion namens show_status und rufe sie auf.
Dein Programm muss:
show_statusohne Parameter definieren;innerhalb der Funktion genau
Ready to learn.ausgeben;show_status()nach der Definition genau einmal aufrufen.
Erwartete Ausgabe:
Ready to learn.
Wenn es funktioniert, verwende Step im Übungseditor. Achte darauf, wann Python sich die Definition merkt, wann der Aufruf in den Funktionskörper wechselt und wo die Ausführung nach dessen Ende weitergeht.