2016-07-08 6 views
1

私は10年後の投資価値を計算するプログラム(futval.py)を持っています。私はプログラムを修正して、10年後の1回の投資の価値を計算するのではなく、10年後の年間投資の価値を計算するようにしたい。私はアキュムレータ変数を使用せずにこれを実行したい。元のプログラム(投資、apr、私)にあった変数だけでこれを行うことは可能ですか?Python - 年間投資額の累計値

# futval.py 
# A program to compute the value of an investment 
# carried 10 years into the future 

def main(): 
    print "This program calculates the future value", 
    print "of a 10-year investment." 

    investment = input("Enter the initial investment: ") 
    apr = input("Enter the annual interest rate: ") 

    for i in range(10): 
     investment = investment * (1 + apr) 

    print "The value in 10 years is:", investment 

main() 

私は 'futval'アキュムレータ変数を導入せずにプログラムを修正することができませんでした。

# futval10.py 
# A program to compute the value of an annual investment 
# carried 10 years into the future 

def main(): 
    print "This program calculates the future value", 
    print "of a 10-year annual investment." 

    investment = input("Enter the annual investment: ") 
    apr = input("Enter the annual interest rate: ") 

    futval = 0 

    for i in range(10): 
     futval = (futval + investment) * (1+apr) 

    print "The value in 10 years is:", futval 

main() 
+0

あなたがしたいことは、私が使用しているPythonの教科書での問題だこれ – Natecat

+0

を行うのですかなぜ:あなたはまだ定期的な投資の元の値を保持するために一時変数を必要としています。おそらく、アキュムレータ変数を導入せずにそれを行うことは可能ですが、どのように把握することはできません。 – TexanBruceWayne

+0

私はそれがfutval =(投資+10)((1 + apr)** 10) – Natecat

答えて

1

さて、数学を試してみると、自分で解決策が見えます。最初の年のために我々は持っている:

new_second_value = (new_value + investment)*(1+apr) 

または

new_second_value = (investment*(1 + apr) + investment)*(1+apr) 

エトセトラ:秒

new_value = investment*(1 + apr) 

を。は、どういうわけか私が管理する:あなたが実際にこのようなものを乗算しようとすると、あなたは10年後に最終的な値が

investment*((1+apr)**10) + investment*((1+apr)**9)+... etc 

であることがわかりますので、あなたの問題の解決策は、EDITだけ

print("The value in 10 years is:", sum([investment*((1+apr)**i) for i in range(1, 11)])) 

ですさて、あなたはアキュムレータを必要としない

ten_years_annual_investment = investment*(apr+1)*((apr+1)**10 - 1)/apr 
0

、しかし:答えはさらに簡単ですので、私が書いたことがちょうど等比級数であるという事実を見落とします

def main(): 
    print "This program calculates the future value", 
    print "of a 10-year investment." 

    investment = input("Enter the initial investment: ") 
    apr = input("Enter the annual interest rate: ") 

    hold = investment 
    investment = investment/apr 

    for i in range(10): 
     investment = investment * (1 + apr) 

    investment = investment - hold/apr 

    print "The value in 10 years is:", investment 

main() 
+0

だから、男は「元のプログラム(投資、apr、私)に存在する変数だけでこれを行うことは可能ですか?あなたの答えは「追加変数を追加する」ですか?それは大胆... –