Verwenden von Funktionsargumenten in Python
Da Sie nun wissen, wie Sie eine Funktion ohne Eingaben erstellen, besteht der nächste Schritt darin, Funktionen zu erstellen, die ein Argument erfordern. Durch die Verwendung von Argumenten werden Funktionen flexibler, da sie mehr bewirken und Bedingungen nutzen können.
Erfordern eines Arguments
Wenn Sie ein Raumschiff steuern, ist eine Funktion ohne erforderliche Eingaben wie ein Computer mit einer Schaltfläche, die über die Uhrzeit informiert. Wenn Sie auf die Schaltfläche klicken, wird Ihnen die Zeit von einer Computerstimme mitgeteilt. Eine erforderliche Eingabe kann jedoch ein Ziel sein, um die Reisestrecke zu berechnen. Erforderliche Eingaben werden als Argumente für die Funktion bezeichnet.
Damit ein Argument erforderlich ist, schließen Sie es in die Klammern ein:
def distance_from_earth(destination):
if destination == "Moon":
return "238,855"
else:
return "Unable to compute to that destination"
Versuchen Sie, die distance_from_earth()
-Funktion ohne Argumente aufzurufen:
distance_from_earth()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: distance_from_earth() missing 1 required positional argument: 'destination'
Python löst TypeError
mit einer Fehlermeldung aus, die besagt, dass die Funktion ein Argument namens destination
erfordert. Wenn der Computer des Raumschiffs aufgefordert wird, die Reiseentfernung mit einem Ziel zu berechnen, sollte er darauf hinweisen, dass ein Ziel erforderlich ist. Der Beispielcode enthält zwei Pfade für eine Antwort: einen für den Mond und einen weiteren für alles andere. Verwenden Sie den Mond als Eingabe, um eine Antwort zu erhalten:
distance_from_earth("Moon")
238,855
Da es eine catch-all-Bedingung gibt, versuchen Sie, eine andere Zeichenfolge als Ziel zu verwenden, um dieses Verhalten zu überprüfen:
distance_from_earth("Saturn")
Unable to compute to that destination
Mehrere erforderliche Argumente
Um mehrere Argumente zu verwenden, müssen Sie sie durch Kommas trennen. Erstellen wir eine Funktion, die berechnen kann, wie viele Tage es dauert, um ein Ziel, eine bestimmte Entfernung und eine konstante Geschwindigkeit zu erreichen:
def days_to_complete(distance, speed):
hours = distance/speed
return hours/24
Verwenden Sie nun die Entfernung zwischen Erde und Mond, um zu berechnen, wie viele Tage es dauern würde, bis der Mond mit der allgemeinen Geschwindigkeitsbeschränkung von 75 Meilen pro Stunde erreicht wird:
days_to_complete(238855, 75)
132.69722222222222
Funktionen als Argumente
Sie können den Wert der days_to_complete()
-Funktion verwenden und einer Variablen zuweisen, die sie dann an round()
(eine integrierte Funktion, die auf die nächste ganze Zahl aufrundet) übergeben, um eine ganze Zahl zu erhalten:
total_days = days_to_complete(238855, 75)
round(total_days)
133
Ein nützliches Muster besteht jedoch darin, Funktionen an andere Funktionen zu übergeben, anstatt den zurückgegebenen Wert zuzuweisen:
round(days_to_complete(238855, 75))
133
Tipp
Obwohl die direkte Übergabe von Funktionen an andere Funktionen als Eingabe nützlich ist, kann die Lesbarkeit ggf. verringert werden. Dieses Muster ist besonders problematisch, wenn die Funktionen zahlreiche Argumente erfordern.