슈코딩

[Python] 계산기 만들기 본문

코딩공부/Python

[Python] 계산기 만들기

Roshu 2022. 4. 17. 18:43

1. 강의영상 링크

(265) (파이썬 기초 활용편 7) GUI 계산기 만들기 강의 #tkinter - YouTube

2. 완성 코드 

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, stoValue, opPre
     stoValue = 0
     opPre = 0
     disValue = 0
     str_value.set(disValue)

def oprator_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
        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= 'blue')
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 = 'black'
        except:
            color = 'green'

        bt = tk.Button(win, 
            text=item,
            width=10, 
            height=5,
            bg = color,
            fg = 'white',
            command = lambda cmd=item: button_click(cmd)
            )
        bt.grid(column=k, row=i+1)



win.mainloop()

 

3. 느낀점

 

  간단한 계산기 하나 만드는데도 처음이라 그런지 복잡하다 생각이 들었다.

  웹개발 종합반 강의를 들으며 파이참으로 코딩을 했기에 파이참으로 하려고 했으나, 에러가 자꾸 나고 

  tkinter 라는걸 어떻게 적용시키는지 몰라서 Visual Studio Code 로 구글링해서 tkinter를 적용시키고 

  겨우 과제를 끝낼수있었다. 따라서 만들기는 했으나 혼자서 만들어봐라 라고 하면 아직은 못만들것같다.

  강의 영상 없이 이런간단한 계산기를 만들려면 코드에대한 이해와 쓰임을 좀더 머릿속에 인지하고 있어야 

  가능할 것 같다는 생각을 했다. 

 

 

'코딩공부 > Python' 카테고리의 다른 글

[Python] PEP8 스타일  (0) 2022.06.29
[Python] 문법 복습 심화 학습  (2) 2022.04.25
Python & DB & Web Scraping  (1) 2022.04.19
Comments