Kom igångKom igång gratis

Simulera periodiska betalningar (I)

Nu har du alla verktyg du behöver för att simulera bolånebetalningarna över tid.

Varje gång en bolånebetalning görs kommer nästa betalning att ha en något lägre andel som går till ränta. Det innebär att en större del av betalningen går till den del av bostaden som du äger, i stället för till banken. Det här är viktigt för att kunna beräkna hur mycket du tjänar på att sälja bostaden innan bolånet är färdigbetalt, eller för att avgöra när bolånet är under vatten. Men mer om det senare.

Du ska nu skriva ett enkelt program för att beräkna ränte- och amorteringsdelen av varje betalning över tid.

Variablerna mortgage_loan, mortgage_rate_periodic och periodic_mortgage_payment från den tredje övningen finns tillgängliga.

Variabeln principal_remaining är initialiserad som en array av nollor med en längd som motsvarar antalet betalningsperioder.

Den här övningen är en del av kursen

Introduktion till finansiella begrepp i Python

Visa kurs

Övningsinstruktioner

  • Sätt previous_principal_remaining för den första perioden, dvs. när (i == 0), till lika med bolånets värde.
  • Sätt previous_principal_remaining för alla övriga perioder till det återstående kapitalbeloppet från föregående period ([i - 1]).
  • Beräkna räntebetalningen (produkten av föregående återstående kapitalbelopp och den periodiska bolåneräntan) och amorteringen (skillnaden mellan den periodiska bolånebetalningen och den betalda räntan) för varje period.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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)
Redigera och kör kod