# Inspired by code from Jesse Weinstein import Tkinter as tk def onOtherButton(event): screen.insert("end", event.widget["text"]) def onBackspace(event): screen.delete( len(screen.get())-1 ) def onEquals(event): screen_get = screen.get() if screen_get: screen.delete(0, "end") screen.insert(0, eval(screen_get) ) root = tk.Tk() screen = tk.Entry(root) screen.grid(columnspan=4, pady=4) specialBut = {"c":onBackspace, "=":onEquals} buttons = [tk.Button(root, text=op, width=3) for op in "789/456*123-0c=+"] for pos,oper in enumerate(buttons): oper.bind("<1>", specialBut.get(oper["text"], onOtherButton)) oper.grid(column=pos%4, row=1+pos/4, pady=4) root.mainloop()