GUI PY CALCULATOR challenge 19 1 17

3 submissions

 

************************************************************************

******************************  RESULTS  ******************************

************************************************************************

###

author : pepe

country : Germany

code :

  1. #written in Python 2.7

  2. import Tkinter

  3.  

  4. global labelSmallText

  5. global labelText

  6. global inputList

  7. global preOperators

  8. global afterOperators

  9. global otherOperators

  10.  

  11. labelSmallText = 0

  12. labelText = 0

  13. inputList = []

  14. preOperators = [“SQRT”]

  15. afterOperators = [“+”, “-“, “*”, “/”, “²”]

  16. otherOperators = [“=”, “C”]

  17.  

  18. def calculator(arithmetic):

  19.     if len(arithmetic) == 1:

  20.         return arithmetic[0]

  21.     elif len(arithmetic) == 2:

  22.         if arithmetic[0] == “SQRT”:

  23.             return str(float(arithmetic[1])** 0.5)

  24.         else:

  25.             return str(float(arithmetic[0])** 2)

  26.     else:

  27.         while “C” in arithmetic:

  28.             cIndex = arithmetic.index(“C”)

  29.             del arithmetic[cIndex]

  30.         while “SQRT” in arithmetic:

  31.             sqrtIndex =arithmetic.index(“SQRT”)

  32.             arithmetic[sqrtIndex] =str(float(arithmetic[sqrtIndex+1]) ** 0.5)

  33.             del arithmetic[sqrtIndex+1]

  34.         while “²” in arithmetic:

  35.             powIndex = arithmetic.index(“²”)

  36.             arithmetic[powIndex-1] =str(float(arithmetic[powIndex-1]) ** 2)

  37.             del arithmetic[powIndex]

  38.         while “/” in arithmetic or “*” inarithmetic:

  39.             for entry in arithmetic:

  40.                 if entry == “/” or entry ==“*”:

  41.                     if entry == “/”:

  42.                         divIndex =arithmetic.index(“/”)

  43.                         arithmetic[divIndex-1] = float(arithmetic[divIndex-1]) /float(arithmetic[divIndex+1])

  44.                         delarithmetic[divIndex+1]

  45.                         delarithmetic[divIndex]

  46.                     else:

  47.                         astIndex =arithmetic.index(“*”)

  48.                         arithmetic[astIndex-1] = float(arithmetic[astIndex-1]) *float(arithmetic[astIndex+1])

  49.                         delarithmetic[astIndex+1]

  50.                         delarithmetic[astIndex]

  51.         while “-“ in arithmetic or “+” inarithmetic:

  52.             for entry in arithmetic:

  53.                 if entry == “-“ or entry ==“+”:

  54.                     if entry == “-“:

  55.                         minIndex =arithmetic.index(“-“)

  56.                         arithmetic[minIndex-1] = float(arithmetic[minIndex-1]) –float(arithmetic[minIndex+1])

  57.                         delarithmetic[minIndex+1]

  58.                         delarithmetic[minIndex]

  59.                         break

  60.                     else:

  61.                         pluIndex =arithmetic.index(“+”)

  62.                         arithmetic[pluIndex-1] = float(arithmetic[pluIndex-1]) +float(arithmetic[pluIndex+1])

  63.                         delarithmetic[pluIndex+1]

  64.                         delarithmetic[pluIndex]

  65.                         break

  66.         return str(float(arithmetic[0]))

  67.            

  68. def isNum(thing):

  69.     global inputList

  70.     global preOperators

  71.     global afterOperators

  72.     global otherOperators

  73.    

  74.     if thing not in preOperators and thingnot in afterOperators and thing not inotherOperators:

  75.         return “num”

  76.     elif thing in preOperators:

  77.         return “sqrt”

  78.     elif thing in afterOperators:

  79.         return “aO”

  80.     else:

  81.         return “else”

  82.  

  83. def test(passed):

  84.     global labelSmallText

  85.     global labelText

  86.     global inputList

  87.    

  88.     if isNum(passed) == “num”:

  89.         if len(inputList) == 0:

  90.             if passed != “.”:

  91.                 labelSmallText.set(“”)

  92.                 labelText.set(passed)

  93.                 inputList.append(passed)

  94.         else:

  95.             ifisNum(inputList[len(inputList)1]) == “num”:

  96.                 if (passed == “.” and passednot in inputList[len(inputList)1]) orpassed != “.”:

  97.                     inputList[len(inputList)1] += passed

  98.                     labelText.set(“%s%s” %(labelText.get(), passed))

  99.             elifisNum(inputList[len(inputList)1]) != “else”and inputList[len(inputList)1] != “²” andpassed != “.”:

  100.                 labelSmallText.set(“%s%s” %(labelSmallText.get(),inputList[len(inputList)1]))

  101.                 labelText.set(passed)

  102.                 inputList.append(passed)

  103.     elif isNum(passed) == “sqrt”:

  104.         if len(inputList) > 0:

  105.             ifisNum(inputList[len(inputList)1]) == “aO”:

  106.                 labelText.set(“SQRT”)

  107.                 labelSmallText.set(“%s%s” %(labelSmallText.get(),inputList[len(inputList)1]))

  108.                 inputList.append(“SQRT”)

  109.         else:

  110.             labelSmallText.set(“”)

  111.             labelText.set(“SQRT”)

  112.             inputList.append(“SQRT”)

  113.     elif isNum(passed) == “aO”:

  114.         if len(inputList) > 0:

  115.             ifisNum(inputList[len(inputList)1]) == “num”or inputList[len(inputList)1] == “²”:

  116.                 labelSmallText.set(“%s%s” %(labelSmallText.get(),inputList[len(inputList)1]))

  117.                 labelText.set(passed)

  118.                 inputList.append(passed)

  119.     else:

  120.         if len(inputList) > 0:

  121.             if passed == “=”:

  122.                 ifisNum(inputList[len(inputList)1]) !=“sqrt”:

  123.                     ifisNum(inputList[len(inputList)1]) == “num”or inputList[len(inputList)1] == “²”:

  124.                         labelSmallText.set(“%s%s” %(labelSmallText.get(),inputList[len(inputList)1]))

  125.                         labelText.set(calculator(inputList))

  126.                         inputList = []

  127.             else:

  128.                 if len(inputList) > 0:

  129.                     labelText.set(“”)

  130.                     delinputList[len(inputList)1]

  131.                     try:

  132.                         inputList[len(inputList)2] == “C”

  133.                     except:

  134.                         pass

  135.                     newContent = “”

  136.                     for x in inputList:

  137.                         if x != “C”:

  138.                             newContent += x

  139.                     labelSmallText.set(str(newContent))

  140.         else:

  141.             if passed == “C”:

  142.                 labelSmallText.set(“”)

  143.                 labelText.set(“”)

  144.        

  145. def main():

  146.    

  147.     global labelSmallText

  148.     global labelText

  149.     global inputList

  150.    

  151.    

  152.     main = Tkinter.Tk()

  153.     main.resizable(width=False,height=False)

  154.     main.geometry(“300×325”)

  155.     main.title(“calculator”)

  156.    

  157.     labelText = Tkinter.StringVar()

  158.     labelSmallText = Tkinter.StringVar()

  159.    

  160.     bC = Tkinter.Button(main, text=“C”,command=lambdatest(“C”))

  161.     bK = Tkinter.Button(main, text=“.”,command=lambdatest(“.”))

  162.     b0 = Tkinter.Button(main, text=“0”,command=lambdatest(“0”))

  163.     bE = Tkinter.Button(main, text=“=”,command=lambdatest(“=”))

  164.     b1 = Tkinter.Button(main, text=“1”,command=lambdatest(“1”))

  165.     b2 = Tkinter.Button(main, text=“2”,command=lambdatest(“2”))

  166.     b3 = Tkinter.Button(main, text=“3”,command=lambdatest(“3”))

  167.     b4 = Tkinter.Button(main, text=“4”,command=lambdatest(“4”))

  168.     b5 = Tkinter.Button(main, text=“5”,command=lambdatest(“5”))

  169.     b6 = Tkinter.Button(main, text=“6”,command=lambdatest(“6”))

  170.     b7 = Tkinter.Button(main, text=“7”,command=lambdatest(“7”))

  171.     b8 = Tkinter.Button(main, text=“8”,command=lambdatest(“8”))

  172.     b9 = Tkinter.Button(main, text=“9”,command=lambdatest(“9”))

  173.     bd = Tkinter.Button(main, text=“/”,command=lambdatest(“/”))

  174.     ba = Tkinter.Button(main, text=“*”,command=lambdatest(“*”))

  175.     bm = Tkinter.Button(main, text=“-“,command=lambdatest(“-“))

  176.     bp = Tkinter.Button(main, text=“+”,command=lambdatest(“+”))

  177.     bpow = Tkinter.Button(main, text=“x²”,command=lambdatest(“²”))

  178.     bsqrt = Tkinter.Button(main, text=“√”,command=lambdatest(“SQRT”))

  179.    

  180.     labelSmall = Tkinter.Label(main,textvariable=labelSmallText, bg=“light grey”, justify=Tkinter.LEFT,anchor=Tkinter.W, font=(“Helvetica”, 12))

  181.     label = Tkinter.Label(main,textvariable=labelText, bg=“white”,justify=Tkinter.LEFT, anchor=Tkinter.W,font=(“Helvetica”, 16))

  182.    

  183.    

  184.     bC.pack()

  185.     bK.pack()

  186.     b0.pack()

  187.     bE.pack()

  188.     b1.pack()

  189.     b2.pack()

  190.     b3.pack()

  191.     b4.pack()

  192.     b5.pack()

  193.     b6.pack()

  194.     b7.pack()

  195.     b8.pack()

  196.     b9.pack()

  197.     bd.pack()

  198.     ba.pack()

  199.     bm.pack()

  200.     bp.pack()

  201.     bpow.pack()

  202.     bsqrt.pack()

  203.    

  204.     labelSmall.pack()

  205.     label.pack()

  206.    

  207.    

  208.     bC.place(height=25, width=300, x=0,y=300)

  209.     bK.place(height=50, width=75, x=0,y=250)

  210.     b0.place(height=50, width=75, x=75,y=250)

  211.     bE.place(height=50, width=75, x=150,y=250)

  212.     b1.place(height=50, width=75, x=0,y=200)

  213.     b2.place(height=50, width=75, x=75,y=200)

  214.     b3.place(height=50, width=75, x=150,y=200)

  215.     b4.place(height=50, width=75, x=0,y=150)

  216.     b5.place(height=50, width=75, x=75,y=150)

  217.     b6.place(height=50, width=75, x=150,y=150)

  218.     b7.place(height=50, width=75, x=0,y=100)

  219.     b8.place(height=50, width=75, x=75,y=100)

  220.     b9.place(height=50, width=75, x=150,y=100)

  221.     bd.place(height=25, width=75, x=225,y=200)

  222.     ba.place(height=25, width=75, x=225,y=225)

  223.     bm.place(height=25, width=75, x=225,y=250)

  224.     bp.place(height=25, width=75, x=225,y=275)

  225.     bpow.place(height=50, width=75, x=225,y=150)

  226.     bsqrt.place(height=50, width=75, x=225,y=100)

  227.    

  228.     labelSmall.place(height=25, width=300,x=0, y=0)

  229.     label.place(height=75, width=300, x=0,y=25)

  230.    

  231.    

  232.     main.mainloop()

  233.  

  234. main()

###

img-20170120-wa0001

name : ovsky

country : Algeria

import math

from tkinter import *

class calcules:

        #remplacé x par * et ÷ par /

    def remplacee(self):

        self.expression = self.e.get()

        self.newtext=self.expression.replace(self.newdiv,’/’)

        self.newtext=self.newtext.replace(‘x’,’*’)

    def egale(self):

        self.remplacee()

        try:

            self.value= eval(self.newtext) #evaluation de l’expression par la fonction eval()

        except SyntaxError or NameError:

            self.e.delete(0,END)

            self.e.insert(0,’Entree Invalide!’)

        else:

            self.e.delete(0,END)

            self.e.insert(0,self.value)

    def C(self):

        self.txt=self.e.get()[:-1]

        self.e.delete(0,END)

        self.e.insert(0,self.txt)

    def action(self,argi):

        self.e.insert(END,argi)

    def __init__(self,master):

        master.title(‘Calulatrice’)

        master.geometry()

        self.e = Entry(master)

        self.e.grid(row=0,column=0,columnspan=4,pady=3)

        self.e.focus_set()

        self.div=’÷’

        self.newdiv=self.div

        Button(master,text=”=”,width=3,command=lambda:self.egale()).grid(row=4, column=1)

        Button(master,text=’C’,width=3,command=lambda:self.C()).grid(row=4, column=0)

        Button(master,text=”+”,width=3,command=lambda:self.action(‘+’)).grid(row=4, column=3)

        Button(master,text=”x”,width=3,command=lambda:self.action(‘x’)).grid(row=2, column=3)

        Button(master,text=”-“,width=3,command=lambda:self.action(‘-‘)).grid(row=3, column=3)

        Button(master,text=”÷”,width=3,command=lambda:self.action(self.newdiv)).grid(row=1, column=3)

        Button(master,text=”7″,width=3,command=lambda:self.action(‘7’)).grid(row=1, column=0)

        Button(master,text=”8″,width=3,command=lambda:self.action(8)).grid(row=1, column=1)

        Button(master,text=”9″,width=3,command=lambda:self.action(9)).grid(row=1, column=2)

        Button(master,text=”4″,width=3,command=lambda:self.action(4)).grid(row=2, column=0)

        Button(master,text=”5″,width=3,command=lambda:self.action(5)).grid(row=2, column=1)

        Button(master,text=”6″,width=3,command=lambda:self.action(6)).grid(row=2, column=2)

        Button(master,text=”1″,width=3,command=lambda:self.action(1)).grid(row=3, column=0)

        Button(master,text=”2″,width=3,command=lambda:self.action(2)).grid(row=3, column=1)

        Button(master,text=”3″,width=3,command=lambda:self.action(3)).grid(row=3, column=2)

        Button(master,text=”0″,width=3,command=lambda:self.action(0)).grid(row=4, column=1)

        Button(master,text=”.”,width=3,command=lambda:self.action(‘.’)).grid(row=4, column=2)

demarrer = Tk()

obj=calcules(demarrer)

demarrer.mainloop()

###

20170120_152010

name : arj

country : Mauritius

from tkinter import *
from math import *

def getit(event):
label.configure(text = “Answer = ” + str(eval(textfield.get())))

root = Tk()
root.title(“c a l c u l a t o r”)

textfield = Entry(root)
textfield.bind(“<Return>”,getit)

label = Label(root)

textfield.pack()
label.pack()

root.mainloop()

%d bloggers like this: