계산기 만드는 중인데


예를들면 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