90 lines
3.9 KiB
Python
90 lines
3.9 KiB
Python
"""
|
|
Kapitel 02: Der Konstruktor __init__ und self
|
|
==============================================
|
|
|
|
In dieser Aufgabe erstellst du eine Klasse "Bankkonto" für eine Taschengeld-App.
|
|
"""
|
|
|
|
class Bankkonto:
|
|
# ==========================================================================
|
|
# 🎯 TEILZIEL 1 (TODO 1): Schreibe die __init__-Methode.
|
|
# Parameter: self, inhaber (String), kontostand (Float, Standardwert 0.0)
|
|
#
|
|
# Anleitung:
|
|
# 1. Definiere: def __init__(self, inhaber, kontostand=0.0):
|
|
# 2. Speichere die übergebenen Werte an self:
|
|
# self.inhaber = inhaber
|
|
# self.kontostand = kontostand
|
|
# ==========================================================================
|
|
def __init__(self, inhaber, kontostand=0.0):
|
|
# 🎯 TEILZIEL 1: Implementiere die Logik Schritt für Schritt:
|
|
# 💡 Tipp: Beachte Datentypen und das abschließende return!
|
|
pass
|
|
|
|
# ==========================================================================
|
|
# 🎯 TEILZIEL 2 (TODO 2): Schreibe die Methode "einzahlen(self, betrag)".
|
|
#
|
|
# Regeln:
|
|
# 1. Wenn 'betrag' größer als 0 ist:
|
|
# - Erhöhe 'self.kontostand' um 'betrag': self.kontostand += betrag
|
|
# - Gib True zurück (Einzahlung erfolgreich).
|
|
# 2. Wenn 'betrag' kleiner oder gleich 0 ist (z.B. 0 oder -5):
|
|
# - Ändere nichts am Kontostand.
|
|
# - Gib False zurück.
|
|
# ==========================================================================
|
|
def einzahlen(self, betrag):
|
|
# 🎯 TEILZIEL 2: Implementiere die Logik Schritt für Schritt:
|
|
# 💡 Tipp: Beachte Datentypen und das abschließende return!
|
|
pass
|
|
|
|
# ==========================================================================
|
|
# 🎯 TEILZIEL 3 (TODO 3): Schreibe die Methode "auszahlen(self, betrag)".
|
|
#
|
|
# Regeln:
|
|
# 1. Prüfe mit 'if', ob 'betrag > 0' UND 'self.kontostand >= betrag':
|
|
# - Wenn ja: Ziehe den Betrag ab (self.kontostand -= betrag)
|
|
# - Gib True zurück.
|
|
# 2. Wenn nicht (nicht genug Geld da oder ungültiger Betrag):
|
|
# - Gib False zurück.
|
|
# ==========================================================================
|
|
def auszahlen(self, betrag):
|
|
# 🎯 TEILZIEL 3: Implementiere die Logik Schritt für Schritt:
|
|
# 💡 Tipp: Beachte Datentypen und das abschließende return!
|
|
pass
|
|
|
|
# ==========================================================================
|
|
# 🎯 TEILZIEL 4 (TODO 4): Schreibe die Methode "info_text(self)".
|
|
#
|
|
# Sie soll einen formatierten String zurückgeben:
|
|
# "Konto von {inhaber}: {kontostand:.2f} Euro"
|
|
#
|
|
# Beispiel: Bei inhaber="Mia" und kontostand=25.5 -> "Konto von Mia: 25.50 Euro"
|
|
# Tipp: f"Konto von {self.inhaber}: {self.kontostand:.2f} Euro"
|
|
# ==========================================================================
|
|
def info_text(self):
|
|
# 🎯 TEILZIEL 4: Implementiere die Logik Schritt für Schritt:
|
|
# 💡 Tipp: Beachte Datentypen und das abschließende return!
|
|
pass
|
|
|
|
|
|
# ==============================================================================
|
|
# Hauptprogramm zum Ausprobieren:
|
|
# (Direkt ausführen mit 'python3 aufgabe.py')
|
|
# ==============================================================================
|
|
if __name__ == "__main__":
|
|
print("--- Teste dein Bankkonto ---")
|
|
konto = Bankkonto("Mia", 20.0)
|
|
|
|
if hasattr(konto, "inhaber") and konto.inhaber:
|
|
print(konto.info_text())
|
|
|
|
erfolg = konto.einzahlen(15.5)
|
|
print(f"15.50€ eingezahlt? {erfolg} -> Neuer Stand: {konto.kontostand:.2f}€")
|
|
|
|
erfolg = konto.auszahlen(50.0)
|
|
print(f"50.00€ ausgezahlt? {erfolg} (sollte False sein) -> Stand: {konto.kontostand:.2f}€")
|
|
|
|
erfolg = konto.auszahlen(10.0)
|
|
print(f"10.00€ ausgezahlt? {erfolg} -> Stand: {konto.kontostand:.2f}€")
|
|
else:
|
|
print("💡 Hinweis: Implementiere erst die TODOs, um die Ausgabe zu sehen!")
|