while循环未更新当前的储蓄变量

时间:2018-08-17 17:25:15

标签: python python-3.x while-loop

我正在从事一个项目,我正在尝试完成一个教程,每月保存一次,直到达到一定的首付金额为止

这些是需要的输入:年薪(120,000),要节省的部分薪水(0.10),住房成本(1,000,000)

ANCHOR

开始时您一无所有,几个月用作计数器

annual_salary = float(input('Enter your annual salary: '))

portion_saved = float(input('Enter the percent of your salary to save, as a decimal: '))

total_cost = float(input('Enter the cost of your dream home: '))

在我的while循环中,我最终自己停止了该程序,而current_savings仅更新一次,而几个月则达到数十亿,这是为什么呢?

current_savings = 0.0

months = 0

down_payment = 0.25*total_cost

current_savings * 0.04表示当我停止程序current_ Savings = 1003.3时,每年的投资回报率为4%。

3 个答案:

答案 0 :(得分:1)

我认为该问题在以下行中:

 current_savings = (current_savings*0.04)/12 + (annual_salary/12)*portion_saved

事实上,您需要像下面这样增加current_ Saving:

current_savings += (current_savings*0.04)/12 + (annual_salary/12)*portion_saved

因为在循环中它将是相同的值 所以你需要增加它

答案 1 :(得分:0)

您将储蓄更新为仅获得的利息,而不是储蓄 的利息。

即,current_savings分配应为:

current_savings = current_savings + (current_savings*0.04)/12 + (annual_salary/12)*portion_saved

答案 2 :(得分:0)

它每次都在更新,但是数学不正确。它正在平衡:

1000.0 1003.3333333333334 1003.3444444444444 1003.3444814814815 1003.3444816049383 1003.3444816053498 1003.3444816053511 1003.3444816053511 1003.3444816053511 1003.3444816053511 1003.3444816053511 1003.3444816053511 1003.3444816053511

我认为您需要将current_savings自身添加回去,以便增加:

current_savings = current_savings + (current_savings*0.04)/12 + (annual_salary/12)*portion_saved