Seite 1 von 1

Zinseszins

Verfasst: Samstag 28. April 2018, 10:54
von Tutsi
Hallo ihr Lieben,

ich bin eine sehr motivierte, aber unfassbar blutige Python-Anfängerin und bitte euch um ein wenig Hilfestellung bei folgendem Problem:
Ich soll ein Programm schreiben das bei der Eingabe Sparrate R, jährlichem Zinssatz p und der Laufzeit n mir die Endsumme errechnet. Zuvor wurde aufgeführt dass ich mit einer jährlichen Rate von 450 Euro nach 25 Jahren 17240.20 Euro erhalte.

Folgendes habe ich mir überlegt:

import math
K0=450 #Anfangskapital
p=0.02 #Zinssatz
n=25 #Anzahl Jahre
R=450 #jährliche Rate

jahr=1
Kapital=float(K0(1+p)**n)-R(1+p)*((1+p)**n-1)/((1+p)**-1)
while Kapital<=17240.20:

jahr+=1

print(jahr, Kapital)

Nun kommt die Fehlermeldung: line 8, in <module>
Kapital=int(K0(1+p)**n)-R(1+p)*((1+p)**n-1)/((1+p)**-1)
TypeError: 'int' object is not callable

Könnt ihr mir vielleicht sagen was ich falsch gemacht habe und ob ich aber so schonmal auf dem richtigen Weg bin?
Und habt ihr eventuell Lieteraturempfehlungen/Video-Tipps für Anfänger? Im Internet gibt es so schrecklich viel, da ist es manchmal schwer zu filtern.

Vielien lieben Dank im Voraus und liebe Grüße :-)

Re: Zinseszins

Verfasst: Samstag 28. April 2018, 11:58
von pillmuncher
Tutsi hat geschrieben:R=450
... R(1+p) ...
Zum Vergleich:

Code: Alles auswählen

>>> R = 450
>>> R()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable
>>> 450()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable

Re: Zinseszins

Verfasst: Samstag 28. April 2018, 12:23
von MagBen
Falsch:
R(1+p)

Richtig:
R*(1+p)

In der Mathematik braucht das Multiplikationszeichen oftmals nicht hingeschrieben werden.
Beim Programmieren ist das aber nicht so.

Re: Zinseszins

Verfasst: Sonntag 29. April 2018, 17:21
von Tutsi
Vielen Dank!