import tkinter as tk
disvalue = 0
oparator = {'+':1, '-':2, '/':3, '*':4, 'C':5, '=':6}
stovalue = 0
oppre = 0
def number_click(value):
#print('숫자', value)
global disvalue
disvalue=(disvalue*10)+value
str_value.set(disvalue)
def clear():
global disvalue, stovalue, oppre
stovalue=0
oppre=0
disvalue=0
str_value.set(disvalue)
def oprator_click(value):
#print('명령', value)
global disvalue, oparator, stovalue, oppre
op = oparator[value]
if op ==5: #C
clear()
elif disvalue ==0:
oppre = 0
elif oppre ==0:
oppre = op
stovalue = disvalue
disvalue = 0
str_value.set(str(disvalue))
elif op == 6: #=
if oppre == 1:
disvalue = stovalue + disvalue
if oppre == 2:
disvalue = stovalue - disvalue
if oppre == 3:
disvalue = stovalue / disvalue
if oppre == 4:
disvalue = stovalue * disvalue
str_value.set(str(disvalue))
disvalue=0
stovalue=0
oppre = 0
else:
clear()
def button_click(value):
#print(value)
try:
value=int(value)
number_click(value)
except:
oprator_click(value)
win = tk.Tk()
win.title('계산기')
str_value = tk.StringVar()
str_value.set(str(disvalue))
dis = tk.Entry(win, textvariable=str_value, justify='right', bg='white', fg='red')
dis.grid(column=0,row=0, columnspan=4, ipadx=80, ipady=30)
calItem = [['1', '2', '3', '4'],
['5', '6', '7', '8'],
['9', '0', '+', '-'],
['/', '*', 'C', '=']]
for i, items in enumerate(calItem):
for k, item in enumerate(items):
try:
color=int(item)
color='purple'
except:
color='pink'
bt = tk.Button(win,
text=item,
width=10,
height=5,
bg=color,
fg='black',
command=lambda cmd=item: button_click(cmd)
)
bt.grid(column=k, row=(i+1))
tk.Button(win,text='1', width=10, height=5).grid(column=0, row=1)
tk.Button(win,text='2', width=10, height=5).grid(column=1, row=1)
tk.Button(win,text='3', width=10, height=5).grid(column=2, row=1)
tk.Button(win,text='4', width=10, height=5).grid(column=3, row=1)
tk.Button(win,text='5', width=10, height=5).grid(column=0, row=2)
tk.Button(win,text='6', width=10, height=5).grid(column=1, row=2)
tk.Button(win,text='7', width=10, height=5).grid(column=2, row=2)
tk.Button(win,text='8', width=10, height=5).grid(column=3, row=2)
tk.Button(win,text='9', width=10, height=5).grid(column=0, row=3)
tk.Button(win,text='0', width=10, height=5).grid(column=1, row=3)
tk.Button(win,text='+', width=10, height=5).grid(column=2, row=3)
tk.Button(win,text='-', width=10, height=5).grid(column=3, row=3)
tk.Button(win,text='/', width=10, height=5).grid(column=0, row=4)
tk.Button(win,text='*', width=10, height=5).grid(column=1, row=4)
tk.Button(win,text='C', width=10, height=5).grid(column=2, row=4)
tk.Button(win,text='=', width=10, height=5).grid(column=3, row=4)
win.mainloop()