2017-03-08 98 views
-3

使用Python 3.6计算首付

你毕业于麻省理工学院,现在有一个伟大的工作!你搬到旧金山湾区,并决定你想开始储蓄购买房子。由于湾区的房价非常高,你意识到你必须先储蓄数年,然后才能负担房屋的首付。在A部分,我们要确定它需要多长时间你攒够钱,使给出的如下假设首付:

  1. 呼叫你的梦想家园TOTAL_COST的成本。

  2. 调用预付定金part_down_payment所需的部分成本。对于 简单性,假设part_down_payment = 0.25(25%)。

  3. 调用您迄今保存的数量current_savings。您从当前的 节省$ 0开始。

  4. 假设你在每月月底投资你的活期储蓄在刀刃上,用R的年回报率(换句话说, ,你获得额外current_savings * R/12的资金投入 你储蓄 - 12是因为r为年率)。假设您的投资获得 回报r = 0.04(4%)。

  5. 假设您的年薪是一年一次的。

  6. 假设您将每月专门拨付一定数额的工资以储蓄 预付款。呼叫portion_saved。该变量应为十进制形式(即0.1 为10%)。

  7. 在每月的月底,您的储蓄将通过您的投资回报率加上您的月薪(年薪/ 12)的百分比来增加。 编写一个程序来计算需要多少个月才能储存足够的钱用于预付定金。你会希望你的主要变量是花车,所以你要抛弃用户输入到浮

到目前为止,我有这样的基本代码:

annual_salary = float(input("Type annual salary here : ")) 
portion_saved = float(input("Type the portion you want to save (as a decimal)  : ")) 
total_cost = float(input("Type the cost of your dream house here : ")) 
monthly_salary = (annual_salary/12.0) 

portion_down_payment = 0.25 * total_cost 

current_savings = 0 + ??? 

returns = (current_savings * 0.4)/12 

overall_savings = returns + (portion_saved * monthly_salary) 

months = ???` 

我的问题是,我没有想法如何计算月份。
我不知道我是否需要创建一个IF语句,一个循环,或根本没有。

+3

对于麻省理工学院毕业生这应该不难... – Evert

+1

这听起来像你甚至不知道在哪里开始。因此,该网站不适合您的需求,您应该寻求辅导服务。 – TigerhawkT3

+5

我投票关闭这一问题作为题外话,因为等都不是免费辅导服务。 – TigerhawkT3

回答

1

月份是它达到您需要的金额所需的价值。

例如,您想循环使用,直到您有足够的预付定金为止。

months = 0 
# Want to exit the loop when there is enough savings for a down payment 
while current_savings < portion_down_payment: 
    current_savings += current_savings * (0.4/12) # Monthly interest 
    current_savings += portion_saved # Monthly savings 
    months += 1 
print("It will take {} months to save!".format(months)) 
+0

非常感谢板球。我会把你的信息和我能做的最好的。 – Garrett1021

+0

如果这样可以解决你的问题,你可以表达你的感激在[接受答案】(// stackoverflow.com/help/someone-answers)。 –

+1

板球,使用您提供的代码我完全能够理解问题。感谢您帮助 – Garrett1021

0

你只需要一个while循环: 初始化变量个月为0,并确保储蓄不超过且小于或等于首付。另外,还要确保你设定活期储蓄,以0开始

Current_Saving=0 
rate=0.04/12 

monthly_savings = monthly_salary*0.1 

i=0 
while (Current_Saving <= down_payment): 
    Current_Saving = Current_Saving+(monthly_savings)*rate + monthly_savings 
    i=i+1 
print(i) 

我会给个月的总数。月薪可以通过将年薪通过12.

+1

只是为了让你知道,这不会在Python 3编译,打印功能必须与周围的ARGS括号调用。 –

+0

是的,但上面粘贴的代码显示 - current_savings = 0 + ??? @ Garret1021 –

+0

我编辑了代码,只是重新阅读这个问题。我将工资乘以0.1,因为每个月可节省10%的工资 –

0

这可以分析求解来获得。

down_payment_rate = 0.25 
saving_rate = 0.10 
r = 0.04 #investment rate 

target = total_cost * down_payment_rate 

M = annual_salary/12*saving_rate/12 #Monthly savings 

的问题是解决以下:

target = M*(1+r) + M*(1+r)^2 + M*(1+r)^3 ... M*(1+r)^N 

上面是几何级数,其中N是达到目标的月数。这可以简洁地表述为:

let g = 1+r: 
target = M * (1-g^N)/(1-g) 

你已经知道克,目标,男,解决的唯一的事情是N.您可以使用代数找到结果。即:N =日志(1-目标*(1-G)/ M)/日志(G)