Проблема в том, что когда вы вызываете .get()
, он принимает значение записи и возвращает, так как он все еще пуст, он выдает ошибку.Чтобы исправить это, вы должны добавить кнопку с обратным вызовом, при нажатии кнопки он получит значения и выполнит математику.Попробуйте код ниже, должно работать нормально:
from Tkinter import Tk, Label, Entry, Button
def get_values():
global master
A1 = float(prin.get())
A2 = float(time.get())
A3 = float(ir.get())
A4 = float(c.get())
final = A1 * (((1 + (A3/A4)) ** (A4*A2)))
Label(master, text=str(final)).grid(row=4, column=1)
if __name__ == "__main__":
master = Tk()
master.title('Compound Interest Calculator')
master.geometry('1000x1000')
Label(master, text="Principal Amount").grid(row=0)
Label(master, text="Time").grid(row=1)
Label(master, text="Interest rate").grid(row=2)
Label(master, text="Compounded (per year)").grid(row=3)
Label(master, text="Final").grid(row=4)
prin = Entry(master)
time = Entry(master)
ir = Entry(master)
c = Entry(master)
prin.grid(row=0, column=1)
time.grid(row=1, column=1)
ir.grid(row=2, column=1)
c.grid(row=3, column=1)
Button(master, text="OK", command=get_values).grid(row=5, column=1)
master.mainloop()