forked from dabeaz-course/practical-python
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmortgage.py
More file actions
41 lines (33 loc) · 1.01 KB
/
Copy pathmortgage.py
File metadata and controls
41 lines (33 loc) · 1.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# mortgage.py
#
# Exercise 1.7
# mortgage.py
principal = 500000.0
rate = 0.05
original_payment = 2684.11
total_paid = 0.0
month = 0
extra_payment_start_month = 61
extra_payment_end_month = 108
extra_payment = 1000
while principal > 0:
# larger payment for starting 12 months
# if month < 12:
# payment = original_payment + 1000
# else:
# payment = original_payment
payment = original_payment
# start of month payment
if month % 12 == 0:
payment = payment + extra_payment_start_month
# end of month payment
if month % 12 == 11:
payment = payment + extra_payment_end_month
# extra payment for 4 years after first 5 years
if month >= 12 * 5 and month < 12 * 9:
payment = payment + extra_payment
month = month + 1
principal = principal * (1+rate/12) - payment
total_paid = total_paid + payment
print(f'In month {month} total amount paid is ${total_paid}, left principal is ${principal}')
print('Total paid', total_paid, 'over', month)