Open Source Your Knowledge, Become a Contributor
Technology knowledge has to be shared and made accessible for free. Join the movement.
Informationen an ein Programm zurückliefern
Im letzten Abschnitt haben wir Parameter eingeführt. Mit Parametern konnten wir Funktionen Informationen mitgeben, mit denen sie dann arbeiten konnten. Unsere Programme haben ihre Ergebnisse aber immernoch in Textform ausgegeben.
Ziehen wir eine Bilanz zum Schaltjahrprogramm:
Die Eingabe der Jahreszahl erfolgte über die Tastatur nach Starten des Programms.- Die Jahreszahl wird als Parameter übergeben.
- Zur Kontrolle wurde die Jahreszahl auch wieder ausgegeben.
- Außerdem erfolgt die Rückmeldung des Programms in Textform ("Schaltjahr!" oder "Kein Schaltjahr!").
Der Zweite Punkt, die Ausgabe zur Kontrolle, kann ohne weiteres weggelassen werden, aber wir benötigen noch eine Möglichkeit, eine Rückmeldung an das Programm zurückzuliefern, statt nur eine Textausgabe zu machen!
Rückgabewerte für Methoden
Betrachten wir wieder unser einfaches Summen-Beispiel:
def addiere(x, y):
summe = x + y
print(summe)
Hier könnten wir uns wünschen, das Ergebnis der Summe weiter zu verwenden, zum Beispiel um eine weitere Zahl zu addieren. Wir können das mit dem Schlüsselwort return
möglich machen:
def addiere(x, y):
summe = x + y
return summe
Der englische Begriff "return" kann hier auf zwei Arten ins Deutsche übersetzt werden:
- "zurückkehren": Führt der Computer gerade eine Funktion aus und erreicht eine Zeile, in der return steht, kehrt der Computer zurück an die Stelle, an der die Funktion aufgerufen wurde. Das bedeutet, dass Code in Zeilen nach return nicht mehr ausgeführt wird!
- "zurückgeben": Der Ausdruck, der nach
return
in derselben Zeile steht, wird zum Rückgabewert der Funktion.
Letzteres ist genau die Funktionalität, die wir uns gewünscht haben! Mach dich in der nächsten Codebox mit der Verwendung von Rückgabewerten vertraut:
Aufgabe: Subtraktion implementieren 2.0
Definiere in der nachfolgenden Code-Box eine Funktion subtrahiere()
, die zwei Parameter erhält und die Differenz der beiden Parameter als Rückgabewert zurückliefert. Aufrufbeispiel:
subtrahiere(1, 2)
# gibt nichts aus!
differenz = subtrahiere(1,2)
# differenz == 1-2 == -1
print(differenz)
# gibt -1 aus
Anwendung auf die Schaltjahre
Nun wollen wir unser Schaltjahrbeispiel so umbauen, dass die Methode JahreszahlPruefen()
nicht nur einen Parameter erhält, in dem das zu prüfende Jahr steht, sondern auch noch einen Wahrheitswert zurückgibt. Handelt es sich um ein Schaltjahr, soll True
zurückgegeben werden, andernfalls False
. Mögliche Aufrufe sollen so aussehen:
schaltjahr = JahreszahlPruefen(1998)
# schreibt False in schaltjahr
schaltjahr = JahreszahlPruefen(2000)
# schreibt True in schaltjahr
Hinweis: Rückgabewerte abhängig von Bedingungen können mit if
zum Beispiel so umgesetzt werden:
if bedingung:
return False
else:
return True
Kontrollfragen zu Rückgabewerten:
# Abschnitt A:
addiere(2, 5)
print(summe)
# Abschnitt B:
addiere(2, 5)
print(addiere)
# Abschnitt C:
summe = addiere(2,5)
print(summe)
# Abschnitt D:
print(addiere)(2, 5)
# Abschnitt E:
print(addiere(2,5))