Rückgabewerte & Gültigkeitsbereiche (Scope)

Der smarte Kaffeeautomat

Fortschritt:
PHASE 1

Discovery & Checkpoint

Video & Einstieg
Verständnis-Check Beantworte die Frage zum Video

Gegeben ist folgender Code:

def zubereiten(portionen):
    preis_pro_tasse = 2
    gesamtpreis = portionen * preis_pro_tasse
    return gesamtpreis

rechnung = zubereiten(3)

Welche Aussage über die Variablen und Werte nach Ablauf des Programms ist korrekt?

PHASE 2

Parsons Puzzle

Struktur & Logik
Aufgabe Bringe die Bausteine per Drag & Drop in Reihenfolge

Bringe die Code-Blöcke in die richtige Reihenfolge:
1. Definiere die Funktion kalkuliere_kaffee(grundpreis, sirup), die die Summe berechnet und mit return zurückgibt.
2. Rufe die Funktion im Hauptprogramm mit den Werten 3 und 2 auf.
3. Speichere den Rückgabewert in endpreis und gib das Ergebnis auf der Konsole aus.

Tipp: Benutze die Anfasser zum Verschieben und ⇥- / ⇥+ zum Einrücken.

Dein Programm (Lösung) Hier die Zeilen in die richtige Reihenfolge bringen
Aussortierte Bausteine (Distraktoren) Hierhin fehlerhafte / nicht benötigte Zeilen ziehen
PHASE 3

Scaffolding & Bugfix

Geführte Praxis
Aufgabe Finde und behebe die Fehler im Code

Im folgenden Skript für eine Rabatt-Berechnung gibt es zwei Probleme:
1. Die Funktion berechne_rabatt berechnet zwar die Variable rabatt_betrag, gibt das Ergebnis aber nicht mit return zurück.
2. Das Hauptprogramm speichert den Rückgabewert noch nicht und versucht auf die lokale Variable endpreis zuzugreifen, was zu einem NameError führt.

Korrigiere den Code, sodass die Funktion rabatt_betrag mit return zurückliefert, der Aufruf im Hauptprogramm der Variablen endpreis zugewiesen wird und der Endpreis ausgegeben wird.

Tipp: Passe den Code im Editor an und klicke auf „Ausführen & Prüfen“.

script.py
Python 3.11
Konsole (Output)

                    

Musterlösung:
def berechne_rabatt(basispreis, rabatt_prozent):
    ersparnis = basispreis * (rabatt_prozent / 100)
    rabatt_betrag = basispreis - ersparnis
    return rabatt_betrag

endpreis = berechne_rabatt(10, 20)
print("Endpreis:", endpreis, "Euro")
PHASE 4

Coding Challenge

Eigenständiges Coden
Ziel-Aufgabe Löse die Aufgabe und bestehe alle Tests

Programmiere das Abrechnungsmodul für den Automaten:

1. Schreibe eine Funktion kassieren(anzahl, einzelpreis):
- Berechne darin den Gesamtbetrag (anzahl * einzelpreis).
- Gib diesen Betrag mit return zurück.
2. Rufe die Funktion mit 2 als Anzahl und 3 als Einzelpreis auf.
3. Speichere das Ergebnis in der globalen Variablen gesamtbetrag.
4. Gib auf der Konsole genau folgende Zeilen aus:
Kunde: Sam
Summe: <gesamtbetrag> Euro

Tipp: Schreibe deinen Code in den Editor und klicke auf „Code testen“.

solution.py
Python 3.11
Konsole (Output)

                    

Test-Suite

⚠️

Musterlösung:
def kassieren(anzahl, einzelpreis):
    gesamt = anzahl * einzelpreis
    return gesamt

gesamtbetrag = kassieren(2, 3)
print("Kunde: Sam")
print("Summe:", gesamtbetrag, "Euro")
PHASE 5

Der modulare Barista-Automat

Kreatives Sandbox-Labor
Freies Experimentieren Erweitere deinen Code nach deinen eigenen Ideen

Erweitere den Kaffeeautomaten zu einem vollständigen Menüsystem!
- Schreibe Funktionen wie berechne_zutaten(kaffeetyp), die eine Liste der benötigten Zutaten (z. B. ["Espresso", "Milchschaum"]) zurückgibt.
- Baue eine Funktion pruefe_guthaben(preis, guthaben), die True oder False zurückliefert.
- Kombiniere mehrere Funktionsaufrufe, um eine formatierte Quittung mit Wechselgeld-Berechnung zu erstellen.

Tipp: Passe den Code an, führe ihn aus oder lade dein fertiges Programm als Python-Datei herunter.

programm.py
Python 3.11
Konsole (Output)

                    

Lektion vollständig abgeschlossen!

Du hast alle Phasen gemeistert und kannst hier im Sandbox-Labor frei weiterprogrammieren.

Zur Übersicht →
Lektion beendet
>_

Benutzereingabe (input)

Dein Python-Programm wartet auf eine Eingabe

Tippe deine Eingabe ein und drücke Enter ↵ oder klicke auf Absenden.