On 2017-05-20 02:42, gars...@gmail.com wrote:
m using Python 3.4.2
This is my code:


from tkinter import*

def iCalc(source, side):
     storeObj= Frame(source, borderwidth= 1, bd= 4, bg="powder blue")
     storeObj.pack(side=side, expand=YES, fill=BOTH)
     return storeObj

def button (source, side, text, command=None):
     storeObj= Button(source, text=text, command=command)
     storeObj.pack(side=side, expand=YES, fill=BOTH)
     return storeObj

class app(Frame):
     def __init__(self):
         Frame.__init__(self)
         self.option_add('*Front', 'arial 20 bold')
         self.pack(expand=YES, fill=BOTH)
         self.master.title('Calculator')

         display= StringVar()
         Entry(self, relief=RIDGE,
               textvariable=display, justify='right', bd=30, bg="powder 
blue").pack(side=TOP, expand=YES,
                                                                                
    fill=BOTH)
         for clearBut in(["CE"], ["C"]):
             erase = iCalc(self, TOP)
             for ichar in clearBut:
                 button(erase, LEFT, ichar,
                        lambda storeObj=display, q=ichar: storeObj.set(''))

         for NumBut in ("789/", "456*", "123-", "0.+"):
             FunctionNum = iCalc(self, TOP)
             for iEquals in NumBut:
                 button(FunctionNum, LEFT, iEquals,
                        lambda storeObj=display, q=iEquals: 
storeObj.set(storeObj.get() + q))

         EqualsButton=iCalc(self, TOP)
         for iEquals in "=":
             if iEquals == '=':
                 btniEquals= button(EqualsButton, LEFT, iEquals)
                 btniEquals.bind('<ButtonRelease-1>',
                                 lambda e, s=self, storeObj=display: 
s.calc(storeObj), '+')
             else:
                 btniEquals= buton(EqualsButton, LEFT, iEquals,
                                   lambda storeObj=display, s=' %s '%Equals: 
storeObj.set(storeObj.get()+s))
def calc(self, display):
     try:
         display.set(eval(display.get()))
     except:
         display.set("Type an actual equation please!")



if __name__ == '__main__':
     app().mainloop()

You haven't said what the problem is, but it's because the 'calc' method isn't indented enough. You've indented the '__init__' method correctly, but not the 'calc' method.
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to