Methodenparameter, Rückgabewerte und erste Algorithmen

Anonymous
1,098 views

Open Source Your Knowledge, Become a Contributor

Technology knowledge has to be shared and made accessible for free. Join the movement.

Create Content

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:

Welche Aussagen zu Rückgabewerten sind wahr?

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
Subtrahieren mit Rückgabewert

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
Schaltjahr? Rückgabewert als Boolean erhalten

Kontrollfragen zu Rückgabewerten:

Rückgabewerte ...
Welcher der folgenden Codeabschnitte nutzt den Rückgabewert von addiere() korrekt?
# 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))
Open Source Your Knowledge: become a Contributor and help others learn. Create New Content