숫자 계산하기

Tasker_Jang·2026년 2월 1일

들어가며

프로그래밍의 기본은 숫자를 다루는 것입니다. 파이썬은 계산기처럼 간단하게 사칙연산을 수행할 수 있을 뿐 아니라, 다양한 숫자 자료형과 연산자를 제공합니다. 이번 포스트에서는 파이썬의 숫자 자료형과 연산자를 알아보고, 실수 연산 시 주의할 점까지 살펴보겠습니다.

파이썬의 숫자 자료형

파이썬에는 크게 세 가지 숫자 자료형이 있습니다.

자료형영문명설명예시
정수int소수점이 없는 숫자10, -5, 0
실수float소수점이 있는 숫자3.14, -0.5, 2.0
복소수complex실수부와 허수부로 구성3+4j

대부분의 경우 intfloat만 사용하게 되며, complex는 과학 계산이나 특수한 경우에만 사용합니다.

# 정수
a = 10
b = -5

# 실수
c = 3.14
d = -0.5

# 복소수 (참고용)
e = 3 + 4j

기본 산술 연산자

파이썬에서 제공하는 기본 산술 연산자는 다음과 같습니다.

# 덧셈
print(10 + 5)   # 15

# 뺄셈
print(10 - 5)   # 5

# 곱셈
print(10 * 5)   # 50

# 나눗셈
print(10 / 5)   # 2.0

나눗셈 연산자의 차이: / vs //

파이썬 3에서는 나눗셈 연산자가 두 가지로 구분됩니다. 이는 파이썬을 처음 배울 때 혼란스러울 수 있는 부분이므로 주의가 필요합니다.

1. / 연산자: 실수 나눗셈

/ 연산자는 항상 실수(float) 결과를 반환합니다.

print(10 / 5)   # 2.0 (실수)
print(7 / 2)    # 3.5
print(10 / 3)   # 3.3333333333333335

정수끼리 나눗셈을 해도 결과는 실수가 됩니다.

2. // 연산자: 정수 나눗셈 (버림 나눗셈)

// 연산자는 나눗셈 후 소수점 이하를 버린 정수 결과를 반환합니다.

print(10 // 5)  # 2 (정수)
print(7 // 2)   # 3 (3.5에서 소수점 버림)
print(10 // 3)  # 3 (3.333...에서 소수점 버림)
연산/ 결과// 결과
10 / 52.02
7 / 23.53
10 / 33.333...3

주의: // 연산자는 "몫"을 구하는 연산자로, 음수에서는 동작이 다를 수 있습니다.

print(-7 // 2)  # -4 (내림이므로 -3.5 → -4)

나머지 연산자: % (모듈로 연산자)

% 연산자는 나눗셈의 나머지를 구합니다. 이를 모듈로(modulo) 연산자라고 부릅니다.

print(10 % 3)   # 1 (10을 3으로 나눈 나머지)
print(7 % 2)    # 1 (홀수 판별에 자주 사용)
print(8 % 2)    # 0 (짝수)

실무 활용 예시

나머지 연산자는 다음과 같은 상황에서 유용합니다:

# 짝수/홀수 판별
number = 7
if number % 2 == 0:
    print('짝수')
else:
    print('홀수')  # 출력: 홀수

# 3의 배수 판별
if 9 % 3 == 0:
    print('3의 배수입니다')  # 출력

거듭제곱 연산자: **

** 연산자는 거듭제곱을 계산합니다.

print(2 ** 3)   # 8 (2의 3승 = 2 × 2 × 2)
print(5 ** 2)   # 25 (5의 2승 = 5 × 5)
print(10 ** 0)  # 1 (어떤 수의 0승은 1)

다른 언어에서는 pow() 함수를 사용하는 경우가 많지만, 파이썬은 ** 연산자로 간단하게 표현할 수 있습니다.

# 제곱근 계산 (1/2승)
print(16 ** 0.5)  # 4.0 (16의 제곱근)

자료형 확인: type() 함수

type() 함수는 객체의 자료형(타입)을 알아내는 함수입니다.

print(type(10))      # <class 'int'>
print(type(3.14))    # <class 'float'>
print(type(10 / 5))  # <class 'float'>
print(type(10 // 5)) # <class 'int'>

실습 예시

a = 10
b = 3.14

print(type(a))  # <class 'int'>
print(type(b))  # <class 'float'>

c = a + b
print(c)         # 13.14
print(type(c))   # <class 'float'>

실수 연산의 함정: 부동소수점 오차

컴퓨터는 실수를 부동소수점(floating point) 방식으로 표현하는데, 이 과정에서 미세한 오차가 발생합니다.

print(0.1 + 0.2)  # 0.30000000000000004 (!)

0.3이 나올 것 같지만, 실제로는 0.30000000000000004가 출력됩니다.

왜 이런 일이 발생할까요?

컴퓨터는 10진수가 아닌 2진수로 숫자를 저장합니다. 0.1이나 0.2 같은 10진수를 2진수로 정확히 표현할 수 없어서 오차가 생깁니다.

해결 방법

실무에서 정확한 소수 계산이 필요하다면 Decimal 모듈을 사용합니다.

from decimal import Decimal

a = Decimal('0.1')
b = Decimal('0.2')
print(a + b)  # 0.3 (정확한 결과)

금융 계산처럼 정확성이 중요한 경우 반드시 Decimal을 사용해야 합니다.

정수와 실수를 함께 계산하면?

정수와 실수를 함께 계산하면 표현 범위가 넓은 실수(float)로 자동 변환되어 계산됩니다.

print(10 + 3.5)      # 13.5 (float)
print(type(10 + 3.5)) # <class 'float'>

print(5 * 2.0)       # 10.0 (float)
print(type(5 * 2.0))  # <class 'float'>

이를 암시적 형변환(implicit type conversion)이라고 합니다. 파이썬이 자동으로 int를 float로 변환한 후 계산합니다.

# 내부적으로 이렇게 동작
10 + 3.510.0 + 3.5  # int를 float로 변환13.5

연산자 우선순위

수학과 마찬가지로 파이썬도 연산자 우선순위를 따릅니다.

print(2 + 3 * 4)     # 14 (곱셈이 먼저)
print((2 + 3) * 4)   # 20 (괄호가 최우선)

print(2 ** 3 ** 2)   # 512 (거듭제곱은 오른쪽부터: 2^(3^2) = 2^9)
print((2 ** 3) ** 2) # 64 (괄호로 순서 변경: (2^3)^2 = 8^2)
우선순위연산자
1 (높음)() 괄호
2** 거듭제곱
3*, /, //, %
4 (낮음)+, -
profile
ML Engineer 🧠 | AI 모델 개발과 최적화 경험을 기록하며 성장하는 개발자 🚀 The light that burns twice as bright burns half as long ✨

0개의 댓글