模擬分期付款(I)
你已經擁有模擬房貸隨時間變化所需的所有工具。
每次繳房貸後,下一期用來支付利息的比例會稍微下降。這表示更多的款項會用來增加你在房屋中的持有部分,而不是付給銀行。這對於判斷在清償房貸前出售房屋可以獲利多少,或判斷何時出現房貸「淹水」(資產淨值為負)很重要。稍後我們會再深入說明。
接下來你要撰寫一個簡單的程式,計算各期付款中的利息與本金部分,並追蹤其隨時間的變化。
第 3 個練習中的變數 mortgage_loan、mortgage_rate_periodic 與 periodic_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)