from tkinter import * first_number = 0 second_number = 0 symbols = [] def multiplication(): global counter counter = 0 symbols.clear() entry_box.delete(0, END) entry_box.insert(0, '*') button_multiplication['state'] = 'disabled' button_minus['state'] = 'active' button_division['state'] = 'active' button_plus['state'] = 'active' counter += 1 symbols.append('*') def minus(): global counter counter = 0 symbols.clear() entry_box.delete(0, END) entry_box.insert(0, '-') button_minus['state'] = 'disabled' button_plus['state'] = 'active' button_division['state'] = 'active' button_multiplication['state'] = 'active' counter += 1 symbols.append('-') def division(): global counter counter = 0 symbols.clear() entry_box.delete(0, END) entry_box.insert(0, '/') button_division['state'] = 'disabled' button_minus['state'] = 'active' button_plus['state'] = 'active' button_multiplication['state'] = 'active' counter += 1 symbols.append('/') counter = 0 def plus(): global counter counter = 0 symbols.clear() entry_box.delete(0, END) entry_box.insert(0, '+') button_plus['state'] = 'disabled' button_minus['state'] = 'active' button_division['state'] = 'active' button_multiplication['state'] = 'active' counter += 1 symbols.append('+') def equals(): global first_number, second_number, timer, counter, result entry_box.delete(0, END) first_number = int(first_number) second_number = int(second_number) if '+' in symbols: result = first_number + second_number entry_box.insert(0, result) button_plus['state'] = 'active' symbols.clear() elif '-' in symbols: result = first_number - second_number entry_box.insert(0, result) button_minus['state'] = 'active' symbols.clear() elif '/' in symbols: result = first_number / second_number entry_box.insert(0, result) button_division['state'] = 'active' symbols.clear() elif '*' in symbols: result = first_number * second_number entry_box.insert(0, result) button_multiplication['state'] = 'active' symbols.clear() first_number = result button_minus['state'] = 'active' button_division['state'] = 'active' button_multiplication['state'] = 'active' button_plus['state'] = 'active' second_number = 0 counter = 0 timer -= 1 timer = 0 cursor_location = 1 def button_add(number): global counter, first_number, second_number, timer while True: global cursor_location if counter == 0: entry_box.insert(cursor_location, number) first_number = entry_box.get() if counter == 1: for item in range(1): if timer == item: entry_box.delete(0, END) button_equal['state'] = 'active' button_minus['state'] = 'disabled' button_division['state'] = 'disabled' button_multiplication['state'] = 'disabled' button_plus['state'] = 'disabled' timer += 1 entry_box.insert(cursor_location, number) second_number = entry_box.get() cursor_location += 1 break def clearing(): global timer, counter, first_number, second_number entry_box.delete(0, END) first_number = 0 second_number = 0 timer = 0 counter = 0 symbols.clear() button_plus['state'] = 'active' button_minus['state'] = 'active' button_division['state'] = 'active' button_multiplication['state'] = 'active' button_equal['state'] = 'disabled' root = Tk() root.title('Simple calculator') root.resizable(width=False, height=False) entry_box = Entry(root, width=35, borderwidth=3) entry_box.grid(row=0, column=0, columnspan=3, padx=10, pady=10) # define buttons button_1 = Button(root, text=1, padx=40, pady=20, command=lambda: button_add(1)) button_2 = Button(root, text=2, padx=40, pady=20, command=lambda: button_add(2)) button_3 = Button(root, text=3, padx=40, pady=20, command=lambda: button_add(3)) button_4 = Button(root, text=4, padx=40, pady=20, command=lambda: button_add(4)) button_5 = Button(root, text=5, padx=40, pady=20, command=lambda: button_add(5)) button_6 = Button(root, text=6, padx=40, pady=20, command=lambda: button_add(6)) button_7 = Button(root, text=7, padx=40, pady=20, command=lambda: button_add(7)) button_8 = Button(root, text=8, padx=40, pady=20, command=lambda: button_add(8)) button_9 = Button(root, text=9, padx=40, pady=20, command=lambda: button_add(9)) button_0 = Button(root, text=0, padx=40, pady=20, command=lambda: button_add(0)) button_plus = Button(root, text='+', padx=39, pady=20, command=lambda: plus()) button_equal = Button(root, text='=', padx=87, pady=20, state='disabled', command=lambda: equals()) button_clear = Button(root, text='Clear ', padx=76, pady=20, command=lambda: clearing()) button_minus = Button(root, text='- ', padx=39, pady=20, command=lambda: minus()) button_division = Button(root, text='/', padx=41, pady=20, command=lambda: division()) button_multiplication = Button(root, text='* ', padx=39, pady=20, command=lambda: multiplication()) # put the buttons on the screen button_0.grid(row=4, column=0) root.bind('0', lambda event: button_add(0)) button_1.grid(row=3, column=0) root.bind('1', lambda event: button_add(1)) button_2.grid(row=3, column=1) root.bind('2', lambda event: button_add(2)) button_3.grid(row=3, column=2) root.bind('3', lambda event: button_add(3)) button_4.grid(row=2, column=0) root.bind('4', lambda event: button_add(4)) button_5.grid(row=2, column=1) root.bind('5', lambda event: button_add(5)) button_6.grid(row=2, column=2) root.bind('6', lambda event: button_add(6)) button_7.grid(row=1, column=0) root.bind('7', lambda event: button_add(7)) button_8.grid(row=1, column=1) root.bind('8', lambda event: button_add(8)) button_9.grid(row=1, column=2) root.bind('9', lambda event: button_add(9)) button_plus.grid(row=5, column=0) root.bind('+', lambda event: plus()) button_equal.grid(row=5, column=1, columnspan=2) root.bind('<Return>', lambda event: equals()) button_clear.grid(row=4, column=1, columnspan=2) root.bind('<Delete>', lambda event: clearing()) button_minus.grid(row=6, column=0) root.bind('-', lambda event: minus()) button_division.grid(row=6, column=1) root.bind('/', lambda event: division()) button_multiplication.grid(row=6, column=2) root.bind('*', lambda event: multiplication()) root.mainloop()
Run
Reset
Share
Import
Link
Embed
Language▼
English
中文
Python Fiddle
Python Cloud IDE
Follow @python_fiddle
Browser Version Not Supported
Due to Python Fiddle's reliance on advanced JavaScript techniques, older browsers might have problems running it correctly. Please download the latest version of your favourite browser.
Chrome 10+
Firefox 4+
Safari 5+
IE 10+
Let me try anyway!
url:
Go
Python Snippet
Stackoverflow Question