-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinterestCalculator.py
More file actions
73 lines (63 loc) · 2.34 KB
/
Copy pathinterestCalculator.py
File metadata and controls
73 lines (63 loc) · 2.34 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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
''' A Tkinter interest calculator program'''
import Tkinter as tk
fields = ('Annual rate', 'Number of payments', 'Loan principle', 'Monthly payment',
'Remaining loan')
def monthlyPayment(entries):
# period rate:
r = (float(entries['Annual rate'].get()) / 100) / 12
print('r ', r )
# principal loan
loan = float(entries['Loan principle'].get())
n = float(entries['Number of payments'].get())
remaining_loan = float(entries['Remaining loan'].get())
q = (1+r)**n
monthly = r * ((q*loan - remaining_loan)/ (q-1))
monthly = ("%8.2f" % monthly).strip()
entries['Monthly payment'].delete(0, tk.END)
entries['Monthly payment'].insert(0, monthly)
print("Monthly payment: %f" % float(monthly))
def finalBalance(entries):
# period rate:
r = (float(entries['Annual rate'].get()) / 100) / 12
print('r ', r )
# principal loan
loan = float(entries['Loan principle'].get())
n = float(entries['Number of payments'].get())
monthly = float(entries['Monthly payment'].get())
remaining_loan = float(entries['Remaining loan'].get())
q = (1+r)**n
remaining = q*loan - ((q-1)/r)*monthly
remaining_loan = ("%8.2f" % remaining).strip()
entries['Remaining loan'].delete(0, tk.END)
entries['Remaining loan'].insert(0, monthly)
print("Remaining loan: %f" % float(remaining))
def makeform(root, fields):
entries = {}
for field in fields:
print(field)
row = tk.Frame(root)
lab = tk.Label(row, width=22, text=field+": ", anchor='w')
ent = tk.Entry(row)
ent.insert(0, "0")
row.pack(side=tk.TOP,
fill=tk.X,
padx=5,
pady=5)
lab.pack(side=tk.LEFT)
ent.pack(side=tk.RIGHT,
expand=tk.YES,
fill=tk.X)
entries[field] = ent
return entries
if __name__ == '__main__':
root = tk.Tk()
ents = makeform(root, fields)
b1 = tk.Button(root, text='Final Balance',
command=(lambda e=ents: finalBalance(e)))
b1.pack(side=tk.LEFT, padx=5, pady=5)
b2 = tk.Button(root, text='Monthly Payment',
command=(lambda e=ents: monthlyPayment(e)))
b2.pack(side=tk.LEFT, padx=5, pady=5)
b3 = tk.Button(root, text='Quit', command=root.quit)
b3.pack(side=tk.LEFT, padx=5, pady=5)
root.mainloop()