Seite 1 von 1

Finde Syntax Fehler nicht

Verfasst: Montag 21. März 2022, 18:32
von SkylanderJH
Hallo Zusammen,
ich bin sehr neu in dem Thema und arbeite gerade an meinem ersten Projekt. Es handelt sich dabei um einen recht komplexen Zinseszinsrechner für Doppelstiftungen mit festgesetzten Gewinnverschiebungen……
aber ich denke das ist nicht so wichtig. Ich habe einen Syntax Error, den ich in meinen ca. 20 Zeilen Code seit 2 Stunden suche. Vielleicht könnt ihr mir ja weiterhelfen und mir sagen was ich falsch gemacht.
Danke schonmal im Voraus.

Der Fehler soll liegen bei:
Kw = round(Kw)

Lösche ich die Zeile jedoch zeigt er mir die nächste Zeile als Fehler an. Lösche ich diese ebenfalls verschiebt sich der Fehler wieder um eine Seite nach unten.

Der Code ist:

Jahre = J = 1
Rendite = R = 0.3
Startkapital = Sk = 1000.0
Halt_Wohltätigkeit = Hw = 2/3
Rückeinzahlung_Wohltätigkeit = Rw = 0.5
Rückeinzahlung_Familie = Rf = 0.5

Rp = R * 100
print(f"Nach {J} Jahren bei einer Rendite von {Rp}%:")
print(" ")

print("Wohltätigkeitsstiftung:")
Kw = Sk * (1 + (R * (Hw * Rw)) ** J
Kw = round(Kw)
print(f"Stammkapital: {Kw}€")

Aw = Kw - Sk * (1 + (R * (Hw * (1 - Rw))) ** (J - 1))
Aw = round(Aw)
print(f"Spenden jährlich: {Aw}€")

Re: Finde Syntax Fehler nicht

Verfasst: Montag 21. März 2022, 18:38
von __deets__
Der Fehler ist in der Zeile davor. Merksatz: machst du eine Klammer auf, machst du auch eine Klammer zu!

Re: Finde Syntax Fehler nicht

Verfasst: Montag 21. März 2022, 18:49
von SkylanderJH
Oh Gott,
jap der Fehler war so dumm wie erwartet.
Vielen Dank!

Re: Finde Syntax Fehler nicht

Verfasst: Montag 21. März 2022, 18:54
von Sirius3
Statt kryptischer Abkürzungen sollte man die lange Bezeichner benutzen.
Um die Übersicht zu behalten, kann man die Formel in mehrere Zeilen schreiben.
% gibt man per Formatangabe aus.
Beim Runden muß man aufpassen, wie man rundet. Kannst Du beschreiben, wie bei Gewinnverschiebungen gerundet werden muß?

Code: Alles auswählen

jahre = 1
rendite = 0.3
startkapital = 1000.0
halt_wohltätigkeit = 2/3
rückeinzahlung_wohltätigkeit = 0.5
rückeinzahlung_familie = 0.5

print(f"Nach {jahre} Jahren bei einer Rendite von {rendite:.0%}:")
print()

print("Wohltätigkeitsstiftung:")
stammkapital = startkapital * (
    1 + (rendite * halt_wohltätigkeit * rückeinzahlung_wohltätigkeit) ** jahre
)
stammkapital = round(stammkapital)
print(f"Stammkapital: {stammkapital}€")

spenden = stammkapital - startkapital * (
    1 + (rendite * halt_wohltätigkeit * (1 - rückeinzahlung_wohltätigkeit)) ** (jahre - 1)
)
spenden = round(spenden)
print(f"Spenden jährlich: {spenden}€")