dullin
덜린의 코딩 항해 일지
dullin
전체 방문자
오늘
어제
  • 분류 전체보기 (257)
    • JAVA (19)
    • JAVASCRIPT (3)
    • HTML_CSS (3)
    • DB (35)
      • Oracle (16)
      • MySQL (17)
    • JAVA_SERVLET (5)
    • 오류노트 (4)
    • Library & API (6)
    • Spring (20)
      • 개발준비(setting) (1)
      • 전자정부프레임워크 (5)
    • 인공지능 (2)
    • Python (13)
    • OpenCV (1)
    • AI-900 (5)
    • Django (6)
    • Linux (0)
    • Android Studio (12)
    • React Native (1)
    • 프로 크리에이트 (1)
    • 오늘의 일기 (0)
    • PHP (2)
    • Next.js (0)

블로그 메뉴

  • 카테고리
  • 글쓰기
  • 홈

공지사항

인기 글

태그

  • laravel
  • 오늘도 즐코딩
  • 코딩왕이_되는_그_날까지
  • 필사즉생행생즉사
  • 오블완
  • 오늘도 오류 한모금
  • 강철맷집
  • 예끼에러야
  • 선빵필승
  • Safe Mode
  • 덤벼라
  • 개발환경 세팅
  • 모두_화이팅
  • 갈증해소완료
  • 티스토리챌린지
  • 오갈완
  • 라라벨
  • 덤벼라 스프링
  • 코딩
  • 오늘도 에러박살

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
dullin

덜린의 코딩 항해 일지

파이썬 계산기 만들기 -  ㄱ_ㅖ  산  ㄱ_ㅣ -
Python

파이썬 계산기 만들기 - ㄱ_ㅖ 산 ㄱ_ㅣ -

2022. 7. 26. 10:44
import tkinter as tk

disValue = 0
operator = {'+':1, '-':2, '/':3, '*':4, 'C':5, '=':6}
stoValue = 0
opPre = 0

## 0~9까지의 숫자를 클릭했을 때
def numClick(value):
    # print('숫자', value)
    global disValue
    
    disValue =(disValue*10) + value # 숫자 클릭시 10의 자리씩 이동
    str_value.set(disValue)         # 화면에 숫자를 나타낸다.
    
## c를 클릭하여 clear할 때
def clear():
    global disValue, stoValue, opPre
    # 주요변수 초기화
    stoValue = 0
    disValue = 0
    opPre = 0
    str_value.set(str(disValue)) # 화면 지우기
    
## +, ~, = 연산자 클릭 할 때
def operClick(value):
    # print('명령', value)
    global disValue, operator, stoValue, opPre
    
    # value의 값에 따라 숫자로 연산자를 변경한다.(+는 1로, -는 2로...)
    op = operator[value]
    
    if op ==5:    # C(clear)
        clear()
    elif disValue == 0:                     # 현재 화면에 출력된 값이 0 일 때
        opPre = 0
    elif opPre == 0:                        # 연산자가 한번도 클릭되지 않을 때
        opPre = op                          #현재 눌린 연산자가 있으면 저장
        stoValue = disValue                 #현재까지의 숫자를 저장
        disValue = 0                        #연산자 이후의 숫자를 받기 위해 초기화
        str_value.set(str(disValue))        #0으로 다음 숫자를 받을 준비
    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)                  #정수로 변환한다.
        
        #정수가 아닌 경우 except가 발생하여 아래 except로 이동한다.
        numClick(value)                     #정수인 경우 number_click( )를 호출
    except:
        operClick(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 = '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()

12 + 36

12 * 36

12 - 36

12 / 36

 

clear

저작자표시 (새창열림)

'Python' 카테고리의 다른 글

ImportError: DLL load failed while importing _arpack: 지정된 프로시저를 찾을 수 없습니다.  (2) 2022.10.06
컴퓨터 카메라 출력 후 화면 캡쳐, 저장까지 해보기  (2) 2022.07.21
마우스 클릭 입력받기  (0) 2022.07.19
키보드 키 입력 받기  (0) 2022.07.19
파이썬 셀리늄 크롤링  (0) 2022.07.06
    'Python' 카테고리의 다른 글
    • ImportError: DLL load failed while importing _arpack: 지정된 프로시저를 찾을 수 없습니다.
    • 컴퓨터 카메라 출력 후 화면 캡쳐, 저장까지 해보기
    • 마우스 클릭 입력받기
    • 키보드 키 입력 받기
    dullin
    dullin

    티스토리툴바