잘 따라가며 완성은 했지만 중간에 내가 모르는 말과 이해하지 못하는 함수가 있었다 좀 더 배우고 다시 공부해야겠다.
import tkinter as tk
disValue = 0
operator = {'+' : 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, operator, stovalue, opPre
#global 안넣으면 지워도 전숫자 다시나타남 전역변수를 쓰겠다 하고 넣어줘야한다
stoValue=0
disValue=0
disValue=0
str_value.set(disValue)
def operator_click(value):
#print('명령', value)
global disValue, operator, stoValue, opPre
#전에 뭘 눌렀는지 알아야 계산이 가능 변수가 필요
op=operator[value]
if op == 5 : # C
clear()
elif disValue==0:
opPre =0
elif opPre ==0:
opPre = op #초기화를 여기 다시 넣어줌 조건은 없을때만 넣는다?
stoValue=disValue
#더하기 눌렀을때 원래쓰던값 저장하고 0으로 초기화해서 새 값 넣을 수 있게
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:
operator_click(value)
win = tk.Tk()
win.title('계산기')
# tk.Button(win, text='1',width=10, height=5).btn.grid(column=0, row=1) 해도 상관없다
# 값을 가져오고 유지한다?? 계산기숫자 나타내는 부분 columspan은 밑에 컬럼 갯수와 맞추는 거고(작아서)
# ipadx y 는 xy 값 조절
str_value = tk.StringVar()
str_value.set(str(disValue))
#set 해주면 변수의 값이 자동 업데이트 된다
dis = tk.Entry(win, textvariable=str_value, justify='right')
dis.grid(column=0, row=0, columnspan=4, ipadx=80, ipady=30)
calItem = [['7', '8', '9', '*'],
['4', '5', '6', '-'],
['1', '2', '3', '+'],
['/', '0', 'C', '=']]
for i, items in enumerate(calItem):
for k, item in enumerate(items):
# 오퍼레이터 색 바꾸는 꼼수
try:
color = int(item)
color = 'skyblue'
except:
color = 'gray'
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))
win.mainloop()
'TIL' 카테고리의 다른 글
2022.9. 5월 강민철 튜터님, 이창호 튜터님 특강 (2) | 2022.09.06 |
---|---|
2022.9.6 TIL 백준 3일, 파이썬 특강 + 계산기 실습 (0) | 2022.09.06 |
2022.8.30화 TIL 네비게이션 바, 팀프로젝트 (0) | 2022.08.30 |
2022.8.30화 Team Project 개인 프로필 결과물 (0) | 2022.08.30 |
2022.8.29월 내일배움캠프 AI 시작! (2) | 2022.08.30 |