Моделирование периодических выплат (I)
Теперь у вас есть все необходимые инструменты для моделирования ипотечных выплат во времени.
С каждым платежом по ипотеке доля, направляемая на погашение процентов, постепенно уменьшается. Это означает, что всё большая часть выплаты идёт на увеличение вашей доли в стоимости жилья, а не в пользу банка. Это важно учитывать, если вы планируете продать недвижимость до полного погашения ипотеки или хотите определить момент, когда ипотека становится «подводной». Но об этом — чуть позже.
Сейчас вы напишете простую программу для расчёта процентной и основной частей каждого платежа на протяжении всего срока кредита.
Переменные mortgage_loan, mortgage_rate_periodic и periodic_mortgage_payment из третьего упражнения доступны для использования.
Переменная principal_remaining инициализирована как массив нулей длиной, равной количеству платёжных периодов.
Это упражнение является частью курса
Введение в финансовые концепции на 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)