2017-03-08 83 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)