Нажатие на кнопки калькулятора передаёт в функцию
calc(key) соответствующий параметр, у вас функция обрабатывает только нажатие кнопок
“=” и
“C”, остальные пролетают. Ещё есть опечатки. Сравните (сделал другое расположение кнопок):
from tkinter import Tk,messagebox,Button,Entry
str1='-+0987654321.**/'
bl=['1','2','3','+','4','5','6','-','7','8','9','*','0','.','**','/','','','C','=']
root = Tk()
root.title('Калькулятор')
#logical part of calc
def calc(key):
if key in str1:
calc_entry.insert('end',key)
if key == '=':
#off letter write
try:
result=eval(calc_entry.get())
calc_entry.insert('end','=' +str(result))
except:
calc_entry.insert('end',' ERROR!!')
#clean field
elif key == 'C':
calc_entry.delete(0,'end')
c,r=0,1
for i in bl:
cmd = lambda x=i: calc(x)
Button(root,font='Arial 18',text=i,command=cmd).grid(row=r,column=c)
c+=1
if c>3:
c,r=0,r+1
calc_entry = Entry(root) #,width=33)
calc_entry.grid(row=0,column=0,columnspan=4)
root.mainloop()