開始使用免費開始

模擬分期付款(I)

你已經擁有模擬房貸隨時間變化所需的所有工具。

每次繳房貸後,下一期用來支付利息的比例會稍微下降。這表示更多的款項會用來增加你在房屋中的持有部分,而不是付給銀行。這對於判斷在清償房貸前出售房屋可以獲利多少,或判斷何時出現房貸「淹水」(資產淨值為負)很重要。稍後我們會再深入說明。

接下來你要撰寫一個簡單的程式,計算各期付款中的利息與本金部分,並追蹤其隨時間的變化。

第 3 個練習中的變數 mortgage_loanmortgage_rate_periodicperiodic_mortgage_payment 已可直接使用。

principal_remaining 變數已初始化為一個長度等於付款期數、元素全為 0 的陣列。

本練習屬於課程

Python 金融概念入門

檢視課程

練習說明

  • 在第一期設定 previous_principal_remaining(也就是 (i == 0) 時)等於貸款本金數值。
  • 在其餘各期,將 previous_principal_remaining 設為前一期的「剩餘本金」值(索引為 [i - 1])。
  • 對每一期計算利息金額(上一期剩餘本金與期別房貸利率的乘積)與本金金額(「每期」房貸付款減去該期利息)。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# Loop through each mortgage payment period
for i in range(0, mortgage_payment_periods):
    
    # Handle the case for the first iteration
    if i == 0:
        previous_principal_remaining = ____
    else:
        previous_principal_remaining = ____
        
    # Calculate the interest and principal payments
    interest_payment = round(____*____, 2)
    principal_payment = round(____-____, 2)
    
    # Catch the case where all principal is paid off in the final period
    if previous_principal_remaining - principal_payment < 0:
        principal_payment = previous_principal_remaining
        
    # Collect the principal remaining values in an array
    principal_remaining[i] = previous_principal_remaining - principal_payment
    
    # Print the payments for the first few periods
    print_payments(i, interest_payment, principal_payment, principal_remaining)
編輯並執行程式碼