1+ from tkinter import *
2+
3+ root = Tk ()
4+ root .title ("Simple Calculator" )
5+
6+ data = Entry (root , width = 35 , borderwidth = 5 )
7+ data .grid (row = 0 , column = 0 , columnspan = 3 , padx = 10 , pady = 10 )
8+
9+ #data.insert(0, "")
10+
11+ def button_click (number ):
12+ #data.delete(0, END)
13+ current = data .get ()
14+ data .delete (0 , END )
15+ data .insert (0 , str (current ) + str (number ))
16+
17+ def button_clear ():
18+ data .delete (0 , END )
19+
20+ def button_add ():
21+ first_number = data .get ()
22+ global f_num
23+ global math
24+ math = "addition"
25+ f_num = int (first_number )
26+ data .delete (0 , END )
27+
28+ def button_equal ():
29+ second_number = data .get ()
30+ data .delete (0 , END )
31+
32+ if math == "addition" :
33+ data .insert (0 , f_num + int (second_number ))
34+
35+ if math == "subtraction" :
36+ data .insert (0 , f_num - int (second_number ))
37+
38+ if math == "multiplication" :
39+ data .insert (0 , f_num * int (second_number ))
40+
41+ if math == "division" :
42+ data .insert (0 , f_num / int (second_number ))
43+
44+
45+
46+ def button_subtract ():
47+ first_number = data .get ()
48+ global f_num
49+ global math
50+ math = "subtraction"
51+ f_num = int (first_number )
52+ data .delete (0 , END )
53+
54+ def button_multiply ():
55+ first_number = data .get ()
56+ global f_num
57+ global math
58+ math = "multiplication"
59+ f_num = int (first_number )
60+ data .delete (0 , END )
61+
62+ def button_divide ():
63+ first_number = data .get ()
64+ global f_num
65+ global math
66+ math = "division"
67+ f_num = int (first_number )
68+ data .delete (0 , END )
69+
70+
71+ # Define Buttons
72+
73+ button_1 = Button (root , text = "1" , padx = 40 , pady = 20 , command = lambda : button_click (1 ))
74+ button_2 = Button (root , text = "2" , padx = 40 , pady = 20 , command = lambda : button_click (2 ))
75+ button_3 = Button (root , text = "3" , padx = 40 , pady = 20 , command = lambda : button_click (3 ))
76+ button_4 = Button (root , text = "4" , padx = 40 , pady = 20 , command = lambda : button_click (4 ))
77+ button_5 = Button (root , text = "5" , padx = 40 , pady = 20 , command = lambda : button_click (5 ))
78+ button_6 = Button (root , text = "6" , padx = 40 , pady = 20 , command = lambda : button_click (6 ))
79+ button_7 = Button (root , text = "7" , padx = 40 , pady = 20 , command = lambda : button_click (7 ))
80+ button_8 = Button (root , text = "8" , padx = 40 , pady = 20 , command = lambda : button_click (8 ))
81+ button_9 = Button (root , text = "9" , padx = 40 , pady = 20 , command = lambda : button_click (9 ))
82+ button_0 = Button (root , text = "0" , padx = 40 , pady = 20 , command = lambda : button_click (0 ))
83+ button_add = Button (root , text = "+" , padx = 39 , pady = 20 , command = button_add )
84+ button_equal = Button (root , text = "=" , padx = 91 , pady = 20 , command = button_equal )
85+ button_clear = Button (root , text = "Clear" , padx = 79 , pady = 20 , command = button_clear )
86+
87+ button_subtract = Button (root , text = "-" , padx = 41 , pady = 20 , command = button_subtract )
88+ button_multiply = Button (root , text = "*" , padx = 40 , pady = 20 , command = button_multiply )
89+ button_divide = Button (root , text = "/" , padx = 41 , pady = 20 , command = button_divide )
90+
91+ # Put the buttons on the screen
92+
93+ button_1 .grid (row = 3 , column = 0 )
94+ button_2 .grid (row = 3 , column = 1 )
95+ button_3 .grid (row = 3 , column = 2 )
96+
97+ button_4 .grid (row = 2 , column = 0 )
98+ button_5 .grid (row = 2 , column = 1 )
99+ button_6 .grid (row = 2 , column = 2 )
100+
101+ button_7 .grid (row = 1 , column = 0 )
102+ button_8 .grid (row = 1 , column = 1 )
103+ button_9 .grid (row = 1 , column = 2 )
104+
105+ button_0 .grid (row = 4 , column = 0 )
106+ button_clear .grid (row = 4 , column = 1 , columnspan = 2 )
107+ button_add .grid (row = 5 , column = 0 )
108+ button_equal .grid (row = 5 , column = 1 , columnspan = 2 )
109+
110+ button_subtract .grid (row = 6 , column = 0 )
111+ button_multiply .grid (row = 6 , column = 1 )
112+ button_divide .grid (row = 6 , column = 2 )
113+
114+
115+ root .mainloop ()
0 commit comments