模拟分期还款(I)
您已经具备了随时间模拟按揭还款所需的全部工具。
每进行一次按揭还款,下一期用于支付利息的比例会略微下降。这意味着更多的款项将用于增加您拥有的房屋份额,而不是付给银行。这对于判断在按揭尚未还清前出售房屋能获得多少收益,或判断何时出现房贷"资不抵债"(underwater)都很重要。后面我们还会详细讨论。
现在,您将编写一个简单的程序,随时间计算每期还款中的利息和本金部分。
第三个练习中的变量 mortgage_loan、mortgage_rate_periodic 和 periodic_mortgage_payment 可直接使用。
变量 principal_remaining 已初始化为一个长度等于还款期数、元素全为 0 的数组。
本练习是课程的一部分
Python 金融概念入门
练习说明
- 将第 1 期(即
(i == 0))的previous_principal_remaining设为按揭贷款本金的数值。 - 其他各期的
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)