Skip to content
toylee blog · 컴퓨터, 프로그램 정보 공유

toylee blog · 컴퓨터, 프로그램 정보 공유

파이썬 계산기 만들기 – Python Tkinter

toylee, 2023년 05월 14일

파이썬은 다양한 용도로 사용되는 프로그래밍 언어입니다. 이 중에서도 파이썬으로 간단한 계산기를 만들어보는 것은 초보자에게 좋은 학습 방법입니다. 파이썬은 인터프리터 언어이기 때문에 계산기를 만드는 것은 매우 쉽습니다. 이번 글에서는 파이썬 계산기 만들기 방법을 알아보겠습니다.

[목차]

  • 1. 파이썬 계산기 만들기 – 기본 연산 구현
  • 2. 파이썬 계산기 만들기 – 입력값 받아서 계산하기
  • 3. 파이썬 계산기 만들기 심플형 – Tkinter GUI
    • 3-1. tkinter 모듈 불러오기
    • 3-2. 계산 함수 만들기
    • 3-3. 윈도우 생성
    • 3-4. 입력 필드 생성
    • 3-5. 버튼 생성
    • 3-6. 결과 출력
    • 3-7. 윈도우 실행
  • 4. 파이썬 계산기 만들기 – Tkinter GUI
  • 4. 결론 및 의견

1. 파이썬 계산기 만들기 – 기본 연산 구현

파이썬으로 계산기를 만들 때, 가장 기본이 되는 것은 사칙연산을 구현하는 것입니다. 파이썬에서는 더하기(+), 빼기(-), 곱하기(*), 나누기(/) 연산자를 사용합니다. 아래는 각각 연산자를 사용하는 예시 코드입니다.

1
2
3
4
5
6
7
8
9
10
11
12
# 덧셈
print(1 + 2)
 
# 뺄셈
print(2 – 1)
 
# 곱셈
print(2 * 3)
 
# 나눗셈
print(6 / 2)
 
cs

[실행화면]

파이썬 계산기 만들기 1

각각 3, 1, 6, 3이 출력됩니다. 이러한 연산을 계산기로 구현하면 됩니다.

2. 파이썬 계산기 만들기 – 입력값 받아서 계산하기

기본적인 연산자를 사용하는 것도 좋지만, 사용자가 입력한 값을 받아서 계산하는 것이 더욱 유용한 계산기입니다. 파이썬에서는 input() 함수를 사용하여 사용자 입력을 받을 수 있습니다. 아래는 사용자로부터 두 개의 숫자를 입력받고, 두 수를 더한 결과를 출력하는 예시 코드입니다.

1
2
3
4
5
6
num1 = input(“첫 번째 숫자를 입력하세요: “)
num2 = input(“두 번째 숫자를 입력하세요: “)
 
result = float(num1) + float(num2)
print(“두 수의 합은”, result, “입니다.”)
 
Colored by Color Scripter
cs

[실행화면]

파이썬 계산기 만들기 2

사용자로부터 두 개의 숫자를 입력받은 후, 두 수의 합을 출력합니다. 이와 같은 방식으로 뺄셈, 곱셈, 나눗셈을 구현할 수 있습니다.

3. 파이썬 계산기 만들기 심플형 – Tkinter GUI

파이썬으로 GUI 계산기를 만들어보는 것도 좋은 학습 방법입니다. 파이썬에서는 tkinter 모듈을 사용하여 GUI 프로그래밍을 할 수 있습니다. 아래는 tkinter 모듈을 사용하여 간단한 GUI 계산기를 만드는 예시 코드입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from tkinter import *
 
def calculate():
    num1 = float(entry1.get())
    num2 = float(entry2.get())
 
    if operator.get() == “+”:
        result = num1 + num2
    elif operator.get() == “-“:
        result = num1 – num2
    elif operator.get() == “*”:
        result = num1 * num2
    elif operator.get() == “/”:
        result = num1 / num2
 
    result_label.config(text=“결과: “ + str(result))
 
root = Tk()
root.title(“계산기”)
 
entry1 = Entry(root)
entry1.pack(side=LEFT)
 
operator = StringVar(root)
operator.set(“+”)
operator_menu = OptionMenu(root, operator, “+”, “-“, “*”, “/”)
operator_menu.pack(side=LEFT)
 
entry2 = Entry(root)
entry2.pack(side=LEFT)
 
equal_button = Button(root, text=“=”, command=calculate)
equal_button.pack(side=LEFT)
 
result_label = Label(root)
result_label.pack(side=LEFT)
 
root.mainloop()
 
Colored by Color Scripter
cs

[결과화면]

small

3-1. tkinter 모듈 불러오기

1
2
from tkinter import *
 
cs

tkinter 모듈을 불러옵니다.

3-2. 계산 함수 만들기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def calculate():
    num1 = float(entry1.get())
    num2 = float(entry2.get())
 
    if operator.get() == “+”:
        result = num1 + num2
    elif operator.get() == “-“:
        result = num1 – num2
    elif operator.get() == “*”:
        result = num1 * num2
    elif operator.get() == “/”:
        result = num1 / num2
 
    result_label.config(text=“결과: “ + str(result))
 
Colored by Color Scripter
cs

먼저 Entry 위젯에서 입력받은 값을 get() 메소드를 사용하여 가져옵니다. 이후 if 문을 사용하여 선택된 연산자에 따라 결과값을 계산합니다. 계산 결과는 Label 위젯에 출력됩니다.

3-3. 윈도우 생성

1
2
root = Tk()
root.title(“계산기”)
cs

Tk() 클래스를 이용하여 윈도우를 생성합니다. title() 메소드를 사용하여 윈도우의 제목을 설정합니다.

3-4. 입력 필드 생성

1
2
3
4
5
6
7
8
9
10
11
entry1 = Entry(root)
entry1.pack(side=LEFT)
 
operator = StringVar(root)
operator.set(“+”)
operator_menu = OptionMenu(root, operator, “+”, “-“, “*”, “/”)
operator_menu.pack(side=LEFT)
 
entry2 = Entry(root)
entry2.pack(side=LEFT)
 
Colored by Color Scripter
cs

Entry 클래스를 이용하여 입력 필드를 생성합니다. OptionMenu 클래스를 이용하여 연산자 선택 메뉴를 생성합니다.

3-5. 버튼 생성

1
2
3
equal_button = Button(root, text=“=”, command=calculate)
equal_button.pack(side=LEFT)
 
Colored by Color Scripter
cs

Button 클래스를 이용하여 = 버튼을 생성합니다. command 옵션을 이용하여 클릭했을 때 실행될 함수를 지정합니다.

3-6. 결과 출력

1
2
3
result_label = Label(root)
result_label.pack(side=LEFT)
 
cs

Label 클래스를 이용하여 결과값을 출력할 라벨을 생성합니다.

3-7. 윈도우 실행

mainloop() 메소드를 사용하여 윈도우를 실행합니다.

1
2
root.mainloop()
 
cs

4. 파이썬 계산기 만들기 – Tkinter GUI

이 계산기는 상단에 표시 레이블이 있는 간단한 레이아웃을 가지고 있으며 그 뒤에 산술 연산 및 입력 숫자를 수행하는 버튼 그리드가 있습니다. create_button 메서드는 각 버튼을 생성하고 해당 클릭 이벤트를 버튼의 텍스트로 표시 레이블을 업데이트하는 button_click 메서드에 바인딩하는 데 사용됩니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import tkinter as tk
 
 
class Calculator:
    def __init__(self, master):
        self.master = master
        master.title(“Calculator”)
        master.resizable(False, False)
 
        # Create the display label
        self.display_var = tk.StringVar()
        self.display_var.set(“”)
        self.display_label = tk.Label(master, textvariable=self.display_var, font=(“Arial”, 16), width=18, height=2,
                                      anchor=“e”, padx=10, pady=10)
        self.display_label.grid(row=0, column=0, columnspan=4)
 
        # Create the buttons
        self.create_button(“7”, 1, 0)
        self.create_button(“8”, 1, 1)
        self.create_button(“9”, 1, 2)
        self.create_button(“/”, 1, 3)
 
        self.create_button(“4”, 2, 0)
        self.create_button(“5”, 2, 1)
        self.create_button(“6”, 2, 2)
        self.create_button(“*”, 2, 3)
 
        self.create_button(“1”, 3, 0)
        self.create_button(“2”, 3, 1)
        self.create_button(“3”, 3, 2)
        self.create_button(“-“, 3, 3)
 
        self.create_button(“0”, 4, 0)
        self.create_button(“.”, 4, 1)
        self.create_button(“=”, 4, 2)
        self.create_button(“+”, 4, 3)
 
        self.create_button(“C”, 5, 0, 1, 4, “red”)
 
        # Initialize the calculator state
        self.reset()
 
    def create_button(self, text, row, column, rowspan=1, columnspan=1, bg=“white”):
        button = tk.Button(self.master, text=text, font=(“Arial”, 14), width=4, height=2, bg=bg,
                           command=lambda: self.button_click(text))
        button.grid(row=row, column=column, rowspan=rowspan, columnspan=columnspan, padx=3, pady=3)
 
    def button_click(self, text):
        if text == “C”:
            self.reset()
        elif text == “=”:
            self.calculate()
        else:
            self.display_var.set(self.display_var.get() + text)
 
    def calculate(self):
        try:
            result = str(eval(self.display_var.get()))
            self.display_var.set(result)
        except:
            self.display_var.set(“ERROR”)
 
    def reset(self):
        self.display_var.set(“”)
 
 
root = tk.Tk()
app = Calculator(root)
root.mainloop()
 
Colored by Color Scripter
cs

calculate 메서드는 등호 버튼을 누를 때 호출되며 Python의 eval 함수를 사용하여 표시 레이블의 표현식을 평가하고 결과로 레이블을 업데이트합니다.

파이썬 계산기 만들기 - Python Tkinter

계산 중에 오류가 발생하면 레이블에 “ERROR”가 표시됩니다. ‘reset’ 메서드는 “C” 버튼을 누르고 표시 레이블을 지울 때 호출됩니다.

4. 결론 및 의견

이번 글에서는 파이썬으로 계산기를 만드는 방법에 대해 알아보았습니다. 파이썬은 인터프리터 언어이기 때문에 계산기를 만드는 것이 매우 쉽습니다. 또한 사용자 입력을 받아서 계산하는 방법과 GUI 계산기를 만드는 방법도 알아보았습니다. 파이썬을 이용하여 계산기를 만드는 것은 초보자에게 좋은 학습 방법입니다.

[관련글]

python tkinter 란?

python tkinter gui 만들기

python tkinter Label

파이썬 GUI PYQT6 란?

파이썬 파이썬 계산기 만들기

글 내비게이션

Previous post
Next post

Related Posts

파이썬

PyQt6 스레딩(Threading) GUI 애플리케이션 작성

2023년 06월 10일

PyQt6는 파이썬에서 GUI 애플리케이션을 작성하는 데 유용한 라이브러리 중 하나입니다. PyQt6는 이벤트 루프와 같은 동작 방식으로 인해 PyQt6 스레딩(Threading) 모델에서 작동합니다.

Read More
파이썬

파이썬 웹크롤링(crawling), PyQt6, BeautifulSoup

2023년 06월 19일

파이썬 웹크롤링 (crawling)를 통해 데이터 분석, 콘텐츠 스크래핑 또는 지능형 시스템 구축을 해야하는 경우가 많습니다. 웹크롤링은 다양한 프로그래밍 언어와 라이브러리를 사용하여 수행할 수 있지만, 그것을 Python Pyqt6 그래픽 사용자 인터페이스(GUI)와 결합하면 완성도 높은 프로그램을 제작 할 수 있습니다.

Read More
파이썬

인터넷 공유기 연결방법

2024년 08월 13일

인터넷 공유기는 여러 대의 기기가 하나의 인터넷 연결을 공유할 수 있도록 도와주는 장치입니다. 가정이나 사무실에서 무선 네트워크를 통해 여러 기기를 연결하고자 할 때 필수적인 장비입니다. 인터넷 공유기를 올바르게 설치하고 설정하는 과정은 처음 사용자에게 다소 복잡하게 느껴질 수 있습니다. 이 글에서는 인터넷 공유기를 연결하는 방법과 설정하는 절차를 단계별로 설명하겠습니다. 각 단계별로…

Read More

답글 남기기 응답 취소

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

최신 글

  • 드론 비행금지구역에 대해 알아볼게요
  • cpu 온도 측정 방법
  • 포토샵 단축키 모음 정리본
  • express vpn이란? 장점 및 단점
  • 안드로이드 버전 업그레이드 방법

최신 댓글

  1. 윈도우 단축키 모음 Best5의 ace
  2. http https 차이의 챗GPT 란? · Working for you

보관함

  • 2025년 7월
  • 2025년 6월
  • 2025년 5월
  • 2025년 4월
  • 2025년 3월
  • 2025년 2월
  • 2025년 1월
  • 2024년 12월
  • 2024년 11월
  • 2024년 8월
  • 2024년 6월
  • 2024년 5월
  • 2024년 3월
  • 2024년 2월
  • 2023년 11월
  • 2023년 9월
  • 2023년 8월
  • 2023년 7월
  • 2023년 6월
  • 2023년 5월
  • 2023년 4월
  • 2023년 3월
  • 2023년 2월

카테고리

  • flutter
  • html
  • linux
  • macbook
  • Pc Useful Tips
  • 미분류
  • 워드프레스
  • 자바(Java)
  • 파이썬
  • 프로그래밍
©2025 toylee blog · 컴퓨터, 프로그램 정보 공유 | WordPress Theme by SuperbThemes