관리 메뉴

한다 공부

[Python] 실습1 : 누적 합 계산기 (+Tkinter) 본문

Dev/Python

[Python] 실습1 : 누적 합 계산기 (+Tkinter)

사과당근 2021. 7. 23. 01:17

평안하신지요?

.

.

드디어 계절학기가 끝났다

계절학기로 Python관련된 수업을 들었는데

일부 실습 코드를 포스팅하고자 한다

 

계절학기 때문에 정신이 없어서 일주일간 블로그 방치..

하지만 종강한 날 포스팅하는 나, 칭찬해

 

첫 번째 프로그램은 누적 합 계산기이다.

덧셈, 뺄셈이 가능하고 위에 Label로 계산 결과가 뜬다

 

그 전에, Tkinter에 대해 알아보자!

팅커 아니고 킨터 아니고 티 케이 인터이다.

 

tkinter란, 파이썬에서

그래픽 사용자 인터페이스(GUI: graphical user interface)를 개발할 때 필요한 모듈이다.

(모듈이란, 프로그램의 일부를 가지고 있는 독립적인 파일이다.

모듈을 import해서 다양한 기능을 사용할 수 있다)

 

자바의 Label, Button등을 Tkinter를 통해 구현할 수 있단 말씀!

 

tkinter 모듈을 이용해서 구현해보자

 

#tkinter 이용하기 위한 import
from tkinter import *
from tkinter import messagebox

#update_xxx를 호출하면 update함수에 매개변수 xxx 전달
def update_add():
    update("add")     
def update_subtract():
    update("subtract")
def update_reset():
    update("reset")

#초기화하고 창 만들기
window = Tk()

#누적 합 저장하는 변수
total = 0

#Label 붙이기 (누적 합 출력)
sum = Label(window);

#격자 배치 관리자 이용해서 Label 위치 정하기
sum.grid(row=0, column=1, columnspan=2)

#현재 합계: 라고 나타내는 Label
label = Label(window, text="현재 합계:")
label.grid(row=0, column=0)

#값 입력받는 창
entry = Entry(window)
entry.grid(row=1, column=0, columnspan=3)

#버튼 생성, 더하기 빼기 초기화, command를 통해 버튼 누르면 해당 함수 호출
add_button = Button(window, text="더하기(+)", command=update_add)
sub_button = Button(window, text="빼기(-)", command=update_subtract)
reset_button = Button(window, text="초기화", command=update_reset)

add_button.grid(row=2, column=0)
sub_button.grid(row=2, column=1)
reset_button.grid(row=2, column=2)

#update함수, 누적 합 계산시 이용
#entry에서 값을 받아서 total이라는 변수에 저장
def update(method):
    global total
    try:
        if method == "add":
            total += int(entry.get())
        elif method == "subtract":
            total -= int(entry.get())
        else: 
            total = 0
    #예외의 상황시 경고 메세지 박스를 띄움
    except Exception as e:
        messagebox.showerror(title='calc',message=e)
    
    #누적 합을 나타내는 label의 text를 바꿔줌
    sum.config(text=str(total))
    
    #값 입력하고 entry를 깨끗하게 비워줌
    # (새로운 입력값을 받기 위해)
    entry.delete(0, END)
    
window.mainloop()

 

실행시키고 몇가지 값을 넣어봤다

10 -> 더하기 -> 20 -> 더하기 -> 40 을 입력한 상황

 

실행 화면
실행 후 10입력하고, 더하기 클릭
20추가 입력 후, 더하기 클릭
입력 칸에 40 입력

 

 

끝!

 

 

[참고자료] 두근두근 파이썬 (생능출판, 천인국)