Jun-06-2017, 06:43 PM
Hi,
I need to create a calculator for my college course. Everything works apart from the square root function. I am a total beginner other than a few hours on codecademy. Every time I try it out, I get this error: name 'sqrt9' is not defined.
(I have been testing it using the square root of 9. Replacing 9 with any other number brings up a corresponding error)
Apologies if this isn't informative enough, but any help would be much appreciated.
I need to create a calculator for my college course. Everything works apart from the square root function. I am a total beginner other than a few hours on codecademy. Every time I try it out, I get this error: name 'sqrt9' is not defined.
(I have been testing it using the square root of 9. Replacing 9 with any other number brings up a corresponding error)
Apologies if this isn't informative enough, but any help would be much appreciated.
from tkinter import *
from math import *
#Function enables button clicks
def btnClick(numbers):
global operator
operator=operator+str(numbers)
text_input.set(operator)
#Function enables 'C' button to clear display
def btnClearDisplay():
global operator
operator=""
text_input.set("")
#Function enables completion of calculations
def btnEqualsInput():
global operator
sumof=str(eval(operator))
text_input.set(sumof)
operator=""
#Function enables square root calculations
def btnSquareRoot():
global operator
sqrt=math.sqrt()
text_input.set("")
operator=""
cal = Tk()
cal.title("Calculator")
operator=""
text_input=StringVar()
#Decides size, colour, etc. of display and font
txtdisplay=Entry(cal,font=('arial',20,'bold'),textvariable=text_input,bd=30,
insertwidth=4,bg="powder blue",justify='right').grid(columnspan=3)
#Clear Button
btnClear=Button(cal,padx=10,bd=8,fg="black",font=('arial',20,'bold'),
text="C",bg="Honeydew3",command=btnClearDisplay).grid(row=0,column=3)
#Top line
btnPi=Button(cal,padx=13,bd=8,fg="black",font=('arial',20,'bold'), #Pi button was too big when padx=16
text="π",bg="Honeydew3",command=lambda:btnClick("3.1415")).grid(row=1,column=0), #Lambda command produces requested symbol/number in display when corresponding button is clicked
btnSquareRoot=Button(cal,padx=16,bd=8,fg="black",font=('arial',20,'bold'),
text="√",bg="Honeydew3",command=lambda:btnClick("sqrt")) .grid(row=1,column=1)
btnPercentage=Button(cal,padx=16,bd=8,fg="black",font=('arial',20,'bold'),
text="%",bg="Honeydew3",command=lambda:btnClick("/100*")).grid(row=1,column=2)
btnDivision=Button(cal,padx=16,bd=8,fg="black",font=('arial',20,'bold'),
text="/",bg="Honeydew3",command=lambda:btnClick("/")).grid(row=1,column=3)
#2nd line
btn7=Button(cal,padx=16,bd=8,fg="black",font=('arial',20,'bold'),
text="7",command=lambda:btnClick(7)).grid(row=2,column=0)
btn8=Button(cal,padx=16,bd=8,fg="black",font=('arial',20,'bold'),
text="8",command=lambda:btnClick(8)).grid(row=2,column=1)
btn9=Button(cal,padx=16,bd=8,fg="black",font=('arial',20,'bold'),
text="9",command=lambda:btnClick(9)).grid(row=2,column=2)
btnMultiplication=Button(cal,padx=16,bd=8,fg="black",font=('arial',20,'bold'),
text="*",bg="Honeydew3",command=lambda:btnClick("*")).grid(row=2,column=3)
#3rd line
btn4=Button(cal,padx=16,bd=8,fg="black",font=('arial',20,'bold'),
text="4",command=lambda:btnClick(4)).grid(row=3,column=0)
btn5=Button(cal,padx=16,bd=8,fg="black",font=('arial',20,'bold'),
text="5",command=lambda:btnClick(5)).grid(row=3,column=1)
btn6=Button(cal,padx=16,bd=8,fg="black",font=('arial',20,'bold'),
text="6",command=lambda:btnClick(6)).grid(row=3,column=2)
btnSubtraction=Button(cal,padx=16,bd=8,fg="black",font=('arial',20,'bold'),
text="-",bg="Honeydew3",command=lambda:btnClick("-")).grid(row=3,column=3)
#4th line
btn1=Button(cal,padx=16,bd=8,fg="black",font=('arial',20,'bold'),
text="1",command=lambda:btnClick(1)).grid(row=4,column=0)
btn2=Button(cal,padx=16,bd=8,fg="black",font=('arial',20,'bold'),
text="2",command=lambda:btnClick(2)).grid(row=4,column=1)
btn3=Button(cal,padx=16,bd=8,fg="black",font=('arial',20,'bold'),
text="3",command=lambda:btnClick(3)).grid(row=4,column=2)
btnAddition=Button(cal,padx=16,bd=8,fg="black",font=('arial',20,'bold'),
text="+",bg="Honeydew3",command=lambda:btnClick("+")).grid(row=4,column=3)
#Bottom line
btnDot=Button(cal,padx=16,bd=8,fg="black",font=('arial',20,'bold'),
text=".",bg="Honeydew3",command=lambda:btnClick(".")).grid(row=5,column=0)
btn0=Button(cal,padx=16,bd=8,fg="black",font=('arial',20,'bold'),
text="0",command=lambda:btnClick(0)).grid(row=5,column=1)
#btnPlusMinus=Button(cal,padx=16,bd=8,fg="black",font=('arial',20,'bold'),
# text="+/-",bg="Honeydew3").grid(row=5,column=2)
btnBrackets=Button(cal,padx=16,bd=8,fg="black",font=('arial',20,'bold'),
text="()",bg="Honeydew3").grid(row=5,column=2)
btnEquals=Button(cal,padx=16, bd=8,fg="black",font=('arial',20,'bold'),
text="=",bg="tomato",command=btnEqualsInput).grid(row=5,column=3)
#Causes calculator to stay open
cal.mainloop()
