Simulating periodic payments (I)
Você já tem todas as ferramentas de que precisa para simular os pagamentos da hipoteca ao longo do tempo.
Sempre que um pagamento da hipoteca é feito, o pagamento seguinte terá uma parcela ligeiramente menor destinada aos juros. Isso significa que mais do valor restante vai para a parte do imóvel que você possui, em vez do banco. Isso é importante para saber quanto você ganharia ao vender o imóvel antes de quitar a hipoteca, ou para identificar quando a sua hipoteca está underwater. Mas falaremos mais sobre isso depois.
Agora você vai escrever um programa simples para calcular, ao longo do tempo, as parcelas de juros e de principal em cada pagamento.
As variáveis mortgage_loan, mortgage_rate_periodic e periodic_mortgage_payment do terceiro exercício estão disponíveis para uso.
A variável principal_remaining é inicializada como um array de zeros, com comprimento igual ao número de períodos de pagamento.
Este exercicio faz parte do curso
Introdução a Conceitos Financeiros em Python
Instruções do exercicio
- Defina
previous_principal_remainingpara o primeiro período, ou seja, quando(i == 0), igual ao valor do empréstimo hipotecário. - Defina
previous_principal_remainingpara todos os outros períodos igual ao principal remanescente do período anterior ([i - 1]). - Calcule o pagamento de juros (o produto do principal remanescente anterior pelo juro periódico da hipoteca) e o pagamento de principal (a diferença entre o pagamento hipotecário periódico e os juros pagos) para cada período.
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
# 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)