Finde Syntax Fehler nicht

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
SkylanderJH
User
Beiträge: 2
Registriert: Montag 21. März 2022, 18:20

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}€")
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Der Fehler ist in der Zeile davor. Merksatz: machst du eine Klammer auf, machst du auch eine Klammer zu!
SkylanderJH
User
Beiträge: 2
Registriert: Montag 21. März 2022, 18:20

Oh Gott,
jap der Fehler war so dumm wie erwartet.
Vielen Dank!
Sirius3
User
Beiträge: 17761
Registriert: Sonntag 21. Oktober 2012, 17:20

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}€")
Antworten