medmond919 icon

Untitled

medmond919 | PRO | 06/11/19 06:47:04 PM UTC | 0 ⭐ | 223 👁️ | Never ⏰ | []
Python |

4.33 KB

|

None

|

0 👍

/

0 👎

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()

Comments