Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from tkinter import *
- from tkinter import messagebox
- from tkinter import ttk
- root = Tk()
- root.title('Calculator')
- # logic of calc
- def calc(key):
- global memory
- if key == "=":
- str1 = '-+/*0123456789.'
- # here we exclude letters
- if calc_entry.get()[0] not in str1:
- #calc_entry.insert(END, 'First symb is not a num!')
- messagebox.showerror(' Error!', 'Entered not a num')
- # countings
- try:
- result = eval(calc_entry.get())
- calc_entry.insert(END, "=" + str(result))
- except:
- #calc_entry.insert(END, "Error!")
- messagebox.showerror("Error!", "Check data validation")
- # clear field
- elif key == "C":
- calc_entry.delete(0, END)
- # change +-
- elif key == "-/+":
- if "=" in calc_entry.get():
- calc_entry.delete(0, END)
- try:
- if calc_entry.get()[0] == "-":
- calc_entry.delete(0)
- else:
- calc_entry.insert(0, "-")
- except IndexError:
- pass
- else:
- if "=" in calc_entry.get():
- calc_entry.delete(0, END)
- calc_entry.insert(END, key)
- # here we create buttons
- bttn_list = [
- '7', '8', '9', '+', '-',
- '4', '5', '6', '*', '/',
- '3', '2', '1', '-/+', '=',
- '0', '.', 'C', '', ''
- ]
- r = 1
- c = 0
- for i in bttn_list:
- rel = ""
- cmd = lambda x=i: calc(x)
- ttk.Button(root, text=i, command=cmd).grid(row=r, column=c)
- c += 1
- if c > 4:
- c = 0
- r += 1
- calc_entry = Entry(root, width=33)
- calc_entry.grid(row=0, column=0, columnspan=5)
- root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement