계산기 만드는 중인데
예를들면 1+1 하고 연산자 =를 누르면
2가 나와야하는데 2= 가 나와버림
왜 이런거야?
# tkinter라는 라이브러리를 호출하고 tk라고 부르겠다는 선언
import tkinter as tk
def click(text):
# text 값이 =인 경우
if text == "=":
# 결과 값을 계산
result = str(round(eval(display.get()), 2))
# 메인 디스플레이를 지우고
display.delete(0, tk.END)
# 결과 값을 추가합니다.
display.insert(tk.END, result)
# text 값이 C인 경우
if text == "C":
# 메인 디스플레이를 지웁니다.
display.delete(0, tk.END)
elif text == "AC":
# 메인 디스플레이를 지웁니다.
display.delete(0, tk.END)
else:
# 버튼을 누르면 그 버튼의 Text 값을 Entry에 출력
display.insert(tk.END, text)
# 윈도우 생성
window = tk.Tk()
window.title("클립보드 계산기")
# 디스플레이 생성/ Entry 입력창 만들
display = tk.Entry(window, width=35, bg="light blue")
display.grid(row=0, column=0, columnspan=2)
# 숫자 버튼을 넣을 프레임
num_frame = tk.Frame(window)
num_frame.grid(row=1, column=0)
# 숫자 버튼을 넣어봅시다. 'for문'은 반복문이다
num_list=['7','8','9','4','5','6','1','2','3','0','.','=']
r = 0
c = 0
for btn_text in num_list:
def cmd(x=btn_text):
click(x)
tk.Button(num_frame, text=btn_text, width=5, command=cmd).grid(row=r, column=c)
c = c+1
if c>2:
c=0
r=r+1
# 연산자 버튼을 넣을 프레임
op_frame = tk.Frame(window)
op_frame.grid(row=1, column=1)
# 연산자 버튼을 넣어봅시다.
op_list = ['*','/','+','-','(',')','C','AC']
r = 0
c = 0
for btn_text in op_list:
def cmd(x=btn_text):
click(x)
tk.Button(op_frame, text=btn_text, width=5, command=cmd).grid(row=r, column=c)
c=c+1
if c>1:
c=0
r=r+1
코드 좆같이 짜네
result = 뭐시기 display.get에서 =까지 포함해버린거아닝교
음.. 이거 어려운 건가 보구나
강의보면서 따라하고 있는데 잘 가다가 여기서 막힘 내 눈엔 강의하고 코드는 똑같거든? 버전 3.7과 3.8 문법 바뀐거라도 있나
무슨강의임 다른거들으셈