Lädt...

Rückgabewert

return gibt einen Wert aus der Funktion heraus. cups_left bekommt started und drank und gibt started - drank zurück. cups_left(3, 1) ist deshalb die Zahl 2.

print steht außerhalb der Funktion und schreibt, was dabei herausgekommen ist. cups_left hat keinen eigenen print.

heraus kommt 2

python
def cups_left(started, drank):
    return started - drank

print(cups_left(3, 1))

Auf dem Bildschirm steht 2. Das hat print geschrieben, nicht cups_left. Mit anderen Zahlen wird eben diese Differenz genommen. cups_left(3, 3) ist 0, weil 3 - 3 gleich 0 ist.

Eine Zeile unter return ist weiter eingerückt und gehört zur Funktion. Sie läuft trotzdem nicht. return verlässt die Funktion sofort, und Python kommt bei dieser Zeile nie an.

die Zeile unter return läuft nicht

python
def cups_left(started, drank):
    return started - drank
    print("done")

print(cups_left(3, 1))

Auf dem Bildschirm steht 2. done wird nicht geschrieben. print("done") ist unter def eingerückt, aber return hat die Funktion schon verlassen.

Ohne return kommt nichts zurück, und das Ergebnis ist None. None heißt: kein Wert. greet schreibt den Namen und hat kein return. lida auf dem Bildschirm kommt von diesem inneren print. Das Ergebnis von greet("lida") selbst ist None.

der innere print ist nicht das Ergebnis

python
def greet(name):
    print(name)

print(greet("lida"))

Auf dem Bildschirm steht lida, dann None. greet hat lida geschrieben. Der äußere print hat das Ergebnis geschrieben. Das Ergebnis ist None, weil greet kein return hat.

Drei Aufrufe, und was jeweils herauskommt. In der Zeile mit greet steht None, obwohl auf dem Bildschirm auch lida steht. Dieses lida ist der innere print, nicht das Ergebnis.

📊 Was herauskommt

Aufruf Ergebnis
cups_left(3, 1) 2
cups_left(3, 3) 0
greet("lida") ohne return None

Die nächste Seite sagt, wo ein Name gilt. Hier geht es nur um den Wert, der herauskommt.

Vor der Antwort

  1. Was schreibt print(cups_left(3, 1))?
  2. Was ist cups_left(3, 3)?
  3. print("done") steht unter return. Wird done geschrieben?
  4. greet schreibt nur den Namen. Welche zwei Zeilen schreibt print(greet("lida"))?

Der Wert, der herauskommt

return started - drank macht das Ergebnis zu dieser Zahl. print(cups_left(3, 1)) schreibt 2, und cups_left(3, 3) ist 0. Eine Zeile unter return läuft nicht, also erscheint done nie. Ohne return schreibt print(greet("lida")) lida und dann None.

🧠 Testen Sie Ihr Wissen

Bereit zum Start

Testen Sie Ihr Wissen

Fordern Sie sich mit diesem interaktiven Quiz heraus und sehen Sie, wie gut Sie das Thema verstehen

❓
5
Fragen
🎯
70%
Zum Bestehen
♾️
∞
Zeit
🔄
∞
Versuche

📝 Anweisungen

  • Lesen Sie jede Frage sorgfältig
  • Wählen Sie die beste Antwort für jede Frage
  • Sie können das Quiz so oft wiederholen, wie Sie möchten
  • Ihr Fortschritt wird oben angezeigt