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, sodass die Funktion kalkuliere_kaffee den Gesamtpreis berechnet und zurückgibt.
Anschließend soll der Rückgabewert im Hauptprogramm gespeichert und ausgegeben werden.

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 gibt das Ergebnis nicht an das Hauptprogramm zurück.
2. Das Hauptprogramm versucht auf die lokale Variable rabatt_betrag zuzugreifen, was zu einem NameError führt.

Korrigiere den Code, sodass die Funktion den rabattierten Betrag mit return zurückliefert und das Hauptprogramm diesen in preis_nach_rabatt speichert.

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

preis_nach_rabatt = berechne_rabatt(10, 20)
print("Endpreis:", preis_nach_rabatt, "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 4 als Einzelpreis und 2 als Anzahl auf.
3. Speichere das Ergebnis in der globalen Variablen gesamtbetrag.
4. Gib auf der Konsole genau folgende Zeilen aus:
Kunde: Alex
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, 4)
print("Kunde: Alex")
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.