Simuler les paiements périodiques (I)
Vous disposez de tous les éléments nécessaires pour simuler les paiements hypothécaires dans le temps.
À chaque paiement, la part consacrée aux intérêts diminue légèrement. Autrement dit, une plus grande partie du versement sert à rembourser le capital, donc à augmenter la part du logement dont vous êtes propriétaire plutôt que ce qui revient à la banque. C’est essentiel pour estimer ce que vous gagnerez en vendant le bien avant la fin du prêt, ou pour savoir quand votre prêt est « sous l’eau ». Nous y reviendrons plus tard.
Vous allez maintenant écrire un petit programme pour calculer, au fil du temps, les parts d’intérêts et de capital de chaque paiement.
Les variables mortgage_loan, mortgage_rate_periodic et periodic_mortgage_payment de l’exercice 3 sont disponibles.
La variable principal_remaining est initialisée comme un tableau de zéros dont la longueur est égale au nombre de périodes de paiement.
Cet exercice fait partie du cours
Introduction aux concepts financiers en Python
Instructions
- Pour la première période, c’est-à-dire lorsque
(i == 0), affectez àprevious_principal_remainingla valeur du prêt hypothécaire. - Pour toutes les autres périodes, affectez à
previous_principal_remainingle capital restant dû de la période précédente ([i - 1]). - Calculez, pour chaque période, le paiement d’intérêts (le produit du capital restant dû précédent et du taux hypothécaire périodique) et le remboursement du capital (la différence entre le paiement hypothécaire périodique et les intérêts payés).
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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)