====== LU03.L02 - Zinseszins-Berechnung ====== ===== Herleitung über alle fünf Schritte ===== Die Animation geht die [[modul:m323:learningunits:lu03:rekursion2|5-Schritte-Methode]] durch und baut in Schritt 5 den Code unten Zeile für Zeile auf. Jede Zeile wird auf die Regel zurückgeführt, aus der sie stammt. {{url>https://templates-python.github.io/m323_html/lu03/l02-zinseszins.html 100%,940px noborder|Animation: Zinseszins, von der Regel zum Code}} ===== Musterlösung für die rekursive Funktion ===== Die rekursive Funktion zur Berechnung des Zinseszinses könnte wie folgt aussehen: def compound_interest(principal, rate, time): """ Berechnet das Endguthaben einer Investition unter Berücksichtigung des Zinseszinses. Args: principal (float): Der Anfangsbetrag der Investition. rate (float): Der jährliche Zinssatz als Dezimalzahl (z.B. 0.05 für 5%). time (int): Die Laufzeit der Investition in Jahren. Returns: float: Das Endguthaben der Investition. Raises: ValueError: Wird geworfen, wenn die Laufzeit negativ ist. """ if time < 0: raise ValueError("Die Laufzeit kann nicht negativ sein.") if time == 0: return principal else: return compound_interest(principal * (1 + rate), rate, time - 1) ''compound_interest(1000, 0.05, 4)'' liefert ''1215.5062500000001'' und nicht glatt ''1215.51'' – Gleitkommazahlen sind nicht exakt, und vier Multiplikationen hintereinander machen den Fehler sichtbar. Für eine Geldanzeige gehört ein ''round(..., 2)'' dazu.