Bottom Page

• 0 Vote(s) - 0 Average
• 1
• 2
• 3
• 4
• 5
 i need help in fixing my scientific calculator coding : (, im using python 3.5.5 hans77 Unladen Swallow Posts: 1 Threads: 1 Joined: Oct 2018 Reputation: 0 Likes received: 0 #1 Oct-17-2018, 01:49 AM (This post was last modified: Oct-17-2018, 05:03 AM by Gribouillis. Edited 1 time in total.) ```from tkinter import* import math import parser import tkinter.messagebox root = Tk() root.title("La Scientific Calculator") root.configure(background = "powder blue") root.resizable(width =False, height=False) root.geometry("480x568+0+0") calc = Frame(root) calc.grid() self = "self" class Calc(): def __init__(self): self.total =0 self.current = "" self.input_value = True self.check_sum = False self.op = "" self.result = False def numberEnter(self, num): self.result = False firstnum = txtDisplay.get() secondnum = str(num) if self.input_value: self.current = secondnum self.input_value = False else: if secondnum ==".": if secondnum in firstnum: return self.current = firstnum + secondnum self.display(self.current) def sum_of_total(self): self.result = True self.current = float(self.current) if self.check_sum == True: self.valid_function() else: self.total = float(txtDisplay.get()) def display(self, value): txtDisplay.delete (0, END) txtDisplay.insert(0, value) def valid_fuction(self): if self.op == "add": self.total += self.current if self.op == "sub": self.total -= self.current if self.op == "multi": self.total *= self.current if self.op == "divide": self.total /= self.current if self.op == "mod": self.total %= self.current self.input_value = True self.check_sum+ False self.display(self.total) def operation(self, op): self.current = float(self.current) if self.check_sum: self.valid_function() elif not self.result: self.total = self.current self.input_value = True self.check_sum = True self.op = op self.result = False def Clear_Entry(self): self.result = False self.current ="0" self.display(0) self.input_value = True def all_Clear_Entry(self): self.Clear.Entry() self.total = 0 def mathsPM(self): self.result = False self.current = -(float(txt.Display.get())) self.display(self.current) def squared(self): self.result = False self.current = math.sqrt (float(txt.Display.get())) self.display(self.current) def cos(self): self.result = False self.current = math.cos(math.radians(float(txt.Display.get()))) self.display(self.current) def cosh(self): self.result = False self.current = math.cosh(math.radians(float(txt.Display.get()))) self.display(self.current) def tan(self): self.result = False self.current = math.tan(math.radians(float(txt.Display.get()))) self.display(self.current) def tanh(self): self.result = False self.current = math.tanh(math.radians(float(txt.Display.get()))) self.display(self.current) def sin(self): self.result = False self.current = math.sinh(math.radians(float(txt.Display.get()))) self.display(self.current) def sinh(self): self.result = False self.current = math.sinh(math.radians(float(txt.Display.get()))) self.display(self.current) def log(self): self.result = False self.current = math.log(float(txt.Display.get())) self.display(self.current) def exp(self): self.result = False self.current = math.exp(math.radians(float(txt.Display.get()))) self.display(self.current) def pi(self): self.result = False self.current = math.pi self.display(self.current) def tau(self): self.result = False self.current = math.tau self.display(self.current) def e(self): self.result = False self.current = math.e self.display(self.current) def acosh(self): self.result = False self.current = math.acosh(float(txtDisplay.get())) self.display(self.current) def asinh(self): self.result = False self.current = math.asinh(float(txtDisplay.get())) self.display(self.current) def expml(self): self.result = False self.current = math.expml(float(txtDisplay.get())) self.display(self.current) def lgamma(self): self.result = False self.current = math.lgamma(float(txtDisplay.get())) self.display(self.current) def degrees(self): self.result = False self.current = math.degree(float(txtDisplay.get())) self.display(self.current) def log2(self): self.result = False self.current = math.log2(float(txtDisplay.get())) self.display(self.current) def log10(self): self.result = False self.current = math.log10(float(txtDisplay.get())) self.display(self.current) def log1p(self): self.result = False self.current = math.log1p(float(txtDisplay.get())) self.display(self.current) added_value = calc() txtDisplay = Entry(calc, font=("arial",20,"bold"), bg="powder blue", bd=30, width=29, justify=RIGHT) txtDisplay.grid(row=0, column=0, columnspan=4, pady=1) txtDisplay.insert(0,"0") numberpad = "789456123" i =0 btn =[] for j in range(2,5): for k in range(3): btn.append(Button(calc, width=6, height=2, font=("arial",20,"bold"), bd=4, text =numberpad[i])) btn[i].grid(row =j, column =k, pady=1) btn[i]["command"] = lambda x = numberpad [i] : added_value.numberEnter(x) i+= 1 #===========================================#==========================#========================== btnClear = Button(calc, text=chr(67), width=6, height=2, font=("arial",20,"bold"), bd=4, bg="powder blue", command=added_value.Clear_Entry).grid(row=1,column=0, pady=1) btnALLClear = Button(calc, text=chr(67)+ chr(69),width=6, height=2, font=("arial",20,"bold"), bd=4, bg="powder blue",command=added_value.Clear_Entry).grid(row=1,column=1, pady=1) btnSq = Button(calc, text="√", width=6, height=2, font=("arial",20,"bold"), bd=4, bg="powder blue").grid(row=1,column=2, pady=1) btnAdd = Button(calc, text="+", width=6, height=2, font=("arial",20,"bold"), bd=4, bg="powder blue",command = lambda: added_value.operation("add")).grid(row=1,column=3, pady=1) btnSub = Button(calc, text="-", width=6, height=2, font=("arial",20,"bold"), bd=4, bg="powder blue",command = lambda: added_value.numberEnter("sub")).grid(row=2,column=3, pady=1) btnMult = Button(calc, text="*", width=6, height=2, font=("arial",20,"bold"), bd=4, bg="powder blue",command = lambda: added_value.numberEnter("multi")).grid(row=3,column=3, pady=1) btnDiv = Button(calc, text=chr(247), width=6, height=2, font=("arial",20,"bold"), bd=4, bg="powder blue",command = lambda: added_value.numberEnter("divide")).grid(row=4,column=3, pady=1) btnZero = Button(calc, text="0", width=6, height=2, font=("arial",20,"bold"), bd=4, bg="powder blue",command = lambda: added_value.numberEnter(0)).grid(row=5,column=0, pady=1) btnDot = Button(calc, text=".", width=6, height=2, font=("arial",20,"bold"), bd=4, bg="powder blue",command = lambda: added_value.numberEnter(".")).grid(row=5,column=1, pady=1) btnPM = Button(calc, text=chr(177), width=6, height=2, font=("arial",20,"bold"), bd=4, bg="powder blue").grid(row=5,column=2, pady=1) btnEquals = Button(calc, text="=", width=6, height=2, font=("arial",20,"bold"), bd=4, bg="powder blue", command = lambda : added_value.sum_of_total).grid(row=5,column=3, pady=1) #========================Scientific Part====================================================== btnPi = Button(calc, text="n", width=6, height=2, font=("arial",20,"bold"), bd=4, bg="powder blue",command = lambda: added_value.pi).grid(row=1,column=4, pady=1) btnCos= Button(calc, text="cos", width=6, height=2, font=("arial",20,"bold"), bd=4, bg="powder blue").grid(row=1,column=5, pady=1) btntan = Button(calc, text="tan", width=6, height=2, font=("arial",20,"bold"), bd=4, bg="powder blue").grid(row=1,column=6, pady=1) btnsin = Button(calc, text="sin", width=6, height=2, font=("arial",20,"bold"), bd=4, bg="powder blue").grid(row=1,column=7, pady=1) #===================================================================================================== btn2Pi = Button(calc, text="2n", width=6, height=2, font=("arial",20,"bold"), bd=4, bg="powder blue",command = lambda: added_value.tau).grid(row=2,column=4, pady=1) btnCosh = Button(calc, text="cosh", width=6, height=2, font=("arial",20,"bold"), bd=4, bg="powder blue").grid(row=2,column=5, pady=1) btntanh = Button(calc, text="tanh", width=6, height=2, font=("arial",20,"bold"), bd=4, bg="powder blue").grid(row=2,column=6, pady=1) btnsinh = Button(calc, text="sinh", width=6, height=2, font=("arial",20,"bold"), bd=4, bg="powder blue").grid(row=2,column=7, pady=1) #=================================================================================================== btnlog = Button(calc, text="log", width=6, height=2, font=("arial",20,"bold"), bd=4, bg="powder blue").grid(row=3,column=4, pady=1) btnExp = Button(calc, text="Exp", width=6, height=2, font=("arial",20,"bold"), bd=4, bg="powder blue").grid(row=3,column=5, pady=1) btnMod = Button(calc, text="Mod", width=6, height=2, font=("arial",20,"bold"), bd=4, bg="powder blue").grid(row=3,column=6, pady=1) btnE = Button(calc, text="e", width=6, height=2, font=("arial",20,"bold"), bd=4, bg="powder blue", command = added_value.e).grid(row=3,column=7, pady=1) #=======================================Log Base 2======================================================================== btnlog2 = Button(calc, text="log2", width=6, height=2, font=("arial",20,"bold"), bd=4, bg="powder blue").grid(row=4,column=4, pady=1) btndeg= Button(calc, text="deg", width=6, height=2, font=("arial",20,"bold"), bd=4, bg="powder blue").grid(row=4,column=5, pady=1) btncosh= Button(calc, text="acosh", width=6, height=2, font=("arial",20,"bold"), bd=4, bg="powder blue").grid(row=4,column=6, pady=1) btnasinh = Button(calc, text="asinh", width=6, height=2, font=("arial",20,"bold"), bd=4, bg="powder blue").grid(row=4,column=7, pady=1) #========================================Log base 10================================================================== btnlog10 = Button(calc, text="log10", width=6, height=2, font=("arial",20,"bold"), bd=4, bg="powder blue").grid(row=5,column=4, pady=1) btnCos = Button(calc, text="log1p", width=6, height=2, font=("arial",20,"bold"), bd=4, bg="powder blue").grid(row=5,column=5, pady=1) btnexpml = Button(calc, text="expml", width=6, height=2, font=("arial",20,"bold"), bd=4, bg="powder blue").grid(row=5,column=6, pady=1) btnlgamma = Button(calc, text="lgamma", width=6, height=2, font=("arial",20,"bold"), bd=4, bg="powder blue").grid(row=5,column=7, pady=1) lblDisplay = Label(calc, text="La Scientific Calculator", font=("arial",40, "bold"), justify=CENTER) lblDisplay.grid(row = 0, column=4, columnspan =4) #===========================================Menu and functions============================================= def iExit(): iExit = tkinter.messagebox.askyesno("La Scientific Calulator", "Confirm if you want to exit") if iExit > 0: root.destroy() return def Scientific(): root.resizable(width=False, height=False) root.geometry("944x568+0+0") def Standard(): root.resizable(width =False, height=False) root.geometry("480x568+0+0") menubar = Menu(calc) filemenu = Menu(menubar, tearoff =0) menubar.add_cascade(label = "File", menu=filemenu) filemenu.add_command(label = "Standard", command = Standard) filemenu.add_command(label = "Scientific", command = Scientific) filemenu.add_separator() filemenu.add_command(label = "Exit", command = iExit) editmenu = Menu(menubar, tearoff =0) menubar.add_cascade(label = "Edit", menu=editmenu) editmenu.add_command(label = "Cut") editmenu.add_command(label = "Copy") editmenu.add_separator() editmenu.add_command(label = "Paste") helpmenu = Menu(menubar, tearoff=0) menubar.add_cascade(label = "Help", menu=helpmenu) helpmenu.add_command(label = "View Help") root.config(menu=menubar) root.mainloop() ``` Gribouillis wrote Oct-17-2018, 05:03 AM:Please use python tags to display code, see BBCode syntax for help on this. I did it for you this time. stullis Minister of Silly Walks Posts: 321 Threads: 0 Joined: Sep 2018 Reputation: 37 Likes received: 58 #2 Oct-17-2018, 03:26 AM Woah! Two things: 1. Use the python tags to format that script. It makes it much easier to read. 2. What exactly is the problem with the code? How is it misbehaving? micseydel, Gribouillis, buran like this post « Next Oldest | Next Newest »

Top Page

 Possibly Related Threads... Thread Author Replies Views Last Post Fixing my backup function Beginner_coder123 4 367 Jun-15-2019, 07:56 PM Last Post: Beginner_coder123 Fixing arrays output in Python WLST script pkbash 2 431 Feb-28-2019, 06:20 PM Last Post: pkbash Need help with fixing iteration counter Kapolt 8 801 Oct-18-2018, 07:56 PM Last Post: buran python age calculator need to find the number of years before they turn 100 not using orangevalley 4 1,644 Mar-26-2018, 04:44 AM Last Post: PyMan scientific numbers metalray 1 681 Feb-06-2018, 06:50 PM Last Post: boring_accountant

Forum Jump:

Users browsing this thread: 1 Guest(s)