====== 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.