from math import * from tkinter import * import math expression = "" def func(function): if function == "sin": equation.set(math.sin(eval(equation.get()))) elif function == "cos": equation.set(math.cos(eval(equation.get()))) elif function == "tan": equation.set(math.tan(eval(equation.get()))) def press(num): global expression if num == "exp": num = math.e expression = expression + str(num) equation.set(expression) def equalpress(): global expression total = str(eval(expression)) equation.set(total) expression = "" def clear(): global expression expression = "" equation.set("") # driver code if __name__ == "__main__": # create window gui = Tk() # set background color gui.configure(background="blue") # set title gui.title("Scientific calculator") equation = StringVar() # text-entry box for the expression expression_field = Entry(gui, textvariable=equation) expression_field.grid(columnspan=5, ipadx=90) equation.set("enter your expression") # buttons button1 = Button(gui, text='1', fg='black', bg='grey', command=lambda: press(1), height=1, width=7) button1.grid(row=2, column=0) button2 = Button(gui, text='2', fg='black', bg='grey', command=lambda: press(2), height=1, width=7) button2.grid(row=2, column=1) button3 = Button(gui, text='3', fg='black', bg='grey', command=lambda: press(3), height=1, width=7) button3.grid(row=2, column=2) button4 = Button(gui, text='4', fg='black', bg='grey', command=lambda: press(4), height=1, width=7) button4.grid(row=3, column=0) button5 = Button(gui, text='5', fg='black', bg='grey', command=lambda: press(5), height=1, width=7) button5.grid(row=3, column=1) button6 = Button(gui, text='6', fg='black', bg='grey', command=lambda: press(6), height=1, width=7) button6.grid(row=3, column=2) button7 = Button(gui, text='7', fg='black', bg='grey', command=lambda: press(7), height=1, width=7) button7.grid(row=4, column=0) button8 = Button(gui, text='8', fg='black', bg='grey', command=lambda: press(8), height=1, width=7) button8.grid(row=4, column=1) button9 = Button(gui, text='9', fg='black', bg='grey', command=lambda: press(9), height=1, width=7) button9.grid(row=4, column=2) button0 = Button(gui, text='0', fg='black', bg='grey', command=lambda: press(0), height=1, width=7) button0.grid(row=5, column=1) plus = Button(gui, text='+', fg='black', bg='grey', command=lambda: press('+'), height=1, width=7) plus.grid(row=2, column=3) minus = Button(gui, text='-', fg='black', bg='grey', command=lambda: press('-'), height=1, width=7) minus.grid(row=3, column=3) multiply = Button(gui, text='*', fg='black', bg='grey', command=lambda: press('*'), height=1, width=7) multiply.grid(row=4, column=3) divide = Button(gui, text='/', fg='black', bg='grey', command=lambda: press('/'), height=1, width=7) divide.grid(row=5, column=3) # scientific functions equal = Button(gui, text='=', fg='black', bg='grey', command=equalpress, height=1, width=7) equal.grid(row=5, column=2) clear = Button(gui, text='Clear', fg='black', bg='grey', command=clear, height=1, width=7) clear.grid(row=5, column=0) exponent = Button(gui, text='e', fg='black', bg='grey', command=lambda: press('exp'), height=1, width=7) exponent.grid(row=2, column=4) sin = Button(gui, text='sin', fg='black', bg='grey', command=lambda: func('sin'), height=1, width=7) sin.grid(row=3, column=4) cos = Button(gui, text='cos', fg='black', bg='grey', command=lambda: func('cos'), height=1, width=7) cos.grid(row=4, column=4) tan = Button(gui, text='tan', fg='black', bg='grey', command=lambda: func('tan'), height=1, width=7) tan.grid(row=5, column=4) # run GUI gui.mainloop()