2017-11-03 1 views
1

Wie verwende ich eine geometrische Sequenz mit einer Investition von 5000 und eine 5-prozentige Steigerung jedes Jahr des neuen Wertes? Ich habe alles versucht und ich kann die Antwort nicht richtig beantworten. Bitte helfenGeometrische Sequenz in Python

So Jahr: 0 = 5000

  1. 5512,5
  2. 5788,13

-Code bisher:

def calc_profits(principal, year): 
    INTREST_GROWTH = 0.05 
    for profits in range (1, year): 
     y = year 
     p = principal 

     profits = [p * (INTREST_GROWTH ** (y - 1)) for y in range(1, y + 1)] 
     print("{} {:.2f}".format(profits(year, principal))) 
+0

Welchen Code haben Sie bisher ausprobiert? – bouteillebleu

+0

def calc_profits (principal, Jahr): INTREST_GROWTH = 0,05 für die Gewinne im Bereich (1, Jahr): y = Jahr p = Haupt Gewinne = float [p * (INTREST_GROWTH ** (y - 1)) für y im Bereich (1, INTREST_GROWTH + 1)] drucken ("{} {: .2f}". Format (Gewinne (Jahr, Prinzipal))) – Sarah

+1

Bitte Code in Ihrer Frage aktualisieren. – kgangadhar

Antwort

-1

Sie können die gerade berechnen Endwert Du investierst und nimmst den Auftraggeber ab, um herauszufinden, wie viel Profit du gemacht hast.

EDIT: Wenn Sie die Gewinne in jedem Jahr wissen wollen, können Sie es mit List Comprehensions tun.

def calc_profits(principal, year): 
    INTEREST_GROWTH = 0.05 
    profit = [principal * (1 + INTEREST_GROWTH) ** y - principal 
       for y in range(1, year + 1)] 
    return profit 
+0

Das funktioniert dank. Sollte ich nicht eine Reichweite haben, wenn ich eine Liste machen möchte? Wie wenn ich 5 als meine Jahresvariable einfüge, möchte ich immer noch die Werte von 1 bis 4 wie eine Tabelle von Werten erscheinen. Wie mache ich das? – Sarah

+0

@Sarah Ich habe die Antwort aktualisiert, um die Gewinne für jedes Jahr als Liste anzuzeigen. –

+0

@Sarah Wenn das Ihr Problem gelöst hat, können Sie diese Antwort bitte als akzeptiert markieren? :) –

0

Das Problem liegt in Ihrer Druckaussage.

Sie haben 2 Möglichkeiten, es zum Laufen zu bringen:

  1. Liste Verständnis, creats die vollständige Liste der Gewinne und dann verlieren sie mit den Jahren

    def calc_profits(principal, year): INTREST_GROWTH = 0.05 profits = [principal * ((1+INTREST_GROWTH) ** (y - 1)) for y in range(1, year + 1)] for i,p in zip(range(year),profits): print("{0}:{1:.2f}".format(i, p))

  2. Iteration gibt einen neuen Wert und druckt es für jede Schleifeniteration

    def calc_profits(principal, year): INTREST_GROWTH = 0.05 profits = principal for y in range(1, year): profits = profits*(INTREST_GROWTH+1) print("{0}:{1:.2f}".format(y, profits))