Methoden & Objektzustand

Was kann der Held?

Fortschritt:
PHASE 1

Discovery & Checkpoint

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

Gegeben ist folgende Klassendefinition:

class Spielfigur:
    def __init__(self, name, hp):
        self.name = name
        self.hp = hp

    def heilen(self, wert):
        self.hp += wert

    def schaden_nehmen(self, wert):
        self.hp -= wert

held = Spielfigur("Ritter", 100)
held.schaden_nehmen(30)
held.heilen(10)

Welchen Wert hat das Attribut held.hp nach der Ausführung?

PHASE 2

Parsons Puzzle

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

Bringe die Code-Blöcke in die richtige Reihenfolge und rücke sie korrekt ein, um die Klasse Bankkonto zu definieren, eine Einzahlung vorzunehmen und anschließend den Kontostand auszugeben.

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

In der Methode abheben hat sich ein Fehler eingeschlichen: Der Parameter self fehlt im Methodenkopf und das Attribut wird nicht korrekt über die Instanz angesprochen.
Repariere die Methode abheben, sodass der Betrag ordnungsgemäß vom Guthaben abgezogen wird.

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

script.py
Python 3.11
Konsole (Output)

                    

Musterlösung:
class Bankkonto:
    def __init__(self, inhaber, guthaben):
        self.inhaber = inhaber
        self.guthaben = guthaben

    def abheben(self, betrag):
        self.guthaben -= betrag

    def anzeigen(self):
        print(f"Konto von {self.inhaber}: {self.guthaben} EUR")

konto = Bankkonto("Samira", 200)
konto.abheben(20)
konto.anzeigen()
PHASE 4

Coding Challenge

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

Erstelle die Klasse Bankkonto mit folgenden Anforderungen:
1. Konstruktor __init__(self, inhaber, guthaben) speichert self.inhaber und self.guthaben.
2. Methode einzahlen(self, betrag) erhöht self.guthaben um betrag.
3. Methode abheben(self, betrag) verringert self.guthaben um betrag.
4. Methode kontostand(self) gibt den formatierten String "Inhaber: <inhaber> | Guthaben: <guthaben>" auf der Konsole aus (print).

Erstelle anschließend ein Objekt mein_konto für 'Samira' mit 200 Euro Startguthaben.
Führe danach folgende Schritte aus:
- Zahle 50 Euro ein.
- Hebe 20 Euro ab.
- Rufe die Methode kontostand() auf.

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

solution.py
Python 3.11
Konsole (Output)

                    

Test-Suite

Musterlösung:
class Bankkonto:
    def __init__(self, inhaber, guthaben):
        self.inhaber = inhaber
        self.guthaben = guthaben

    def einzahlen(self, betrag):
        self.guthaben += betrag

    def abheben(self, betrag):
        self.guthaben -= betrag

    def kontostand(self):
        print(f"Inhaber: {self.inhaber} | Guthaben: {self.guthaben}")

mein_konto = Bankkonto("Samira", 200)
mein_konto.einzahlen(50)
mein_konto.abheben(20)
mein_konto.kontostand()
PHASE 5

Das smarte Banking-Terminal

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

Baue dein Bankkonto zu einem echten Terminal mit Schutzfunktionen aus!
Ideen:
- Verhindere Überziehungen in abheben(): Gib eine Fehlermeldung aus, wenn betrag > self.guthaben ist.
- Füge eine Methode ueberweisen(self, ziel_konto, betrag) hinzu, die Geld von einem Objekt auf ein anderes überträgt.
- Führe ein Attribut self.transaktionen (Liste) ein, in dem jede Ein- und Auszahlung protokolliert wird.

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.