본문 바로가기
카테고리 없음

정수(int)와 실수(float)의 차이 및 파이썬 사칙연산 기호 정리

by jbparkbill 2025. 11. 29.
반응형

지난 포스팅에서 우리는 데이터를 담는 그릇인 '변수(Variable)'에 대해 알아보았습니다. 변수라는 상자를 만들었으니, 이제 그 안에 가장 기본적인 데이터인 '숫자'를 담아서 계산을 해볼 차례입니다.

"컴퓨터는 0과 1로 이루어진 계산기다"라는 말을 들어보셨을 겁니다. 그만큼 컴퓨터에게 있어서 수치 연산은 가장 기본적이면서도 강력한 기능입니다. 하지만 프로그래밍 세계의 숫자는 우리가 수학 시간에 배운 것과는 조금 다르게 분류됩니다.

이번 글에서는 파이썬에서 숫자를 다루는 두 가지 핵심 자료형인 정수(int)실수(float)의 결정적인 차이를 이해하고, 계산기보다 더 똑똑하게 계산하는 파이썬만의 연산자 활용법을 완벽하게 정리해 드리겠습니다.

정수와 실수, 그리고 사칙연산 완벽 정리 HTML 코드
정수와 실수, 그리고 사칙연산 완벽 정리 HTML 코드

1. 숫자의 두 얼굴: 정수(int) vs 실수(float)

우리가 일상생활에서는 1이나 1.0이나 같은 크기의 숫자로 취급하지만, 컴퓨터 메모리 내부에서는 이 둘을 완전히 다른 방식으로 저장하고 처리합니다. 이 차이를 이해하는 것이 프로그래밍의 첫걸음입니다.

(1) 정수형 (Integer, int)

정수형은 소수점이 없는 숫자를 말합니다. 0을 포함하여 양의 정수(1, 2, 3...)와 음의 정수(-1, -2, -3...)를 모두 포함합니다.

  • 특징: 소수점이 없으며, 딱 떨어지는 개수나 순서를 셀 때 주로 사용합니다.
  • 메모리: 파이썬의 정수는 메모리가 허용하는 한 크기에 제한이 없습니다. 다른 언어(C, Java)는 숫자가 너무 커지면 오버플로우(Overflow) 오류가 나지만, 파이썬은 천문학적인 숫자도 문제없이 처리합니다.

(2) 실수형 (Floating Point, float)

실수형은 소수점이 포함된 숫자를 말합니다. 3.14, -0.01, 2.0과 같이 소수점이 찍혀 있다면 무조건 실수형으로 분류됩니다.

  • 이름의 유래: 'Floating Point'는 '떠다니는(Floating) 점(Point)'이라는 뜻입니다. 소수점의 위치가 고정되지 않고 움직일 수 있다는 뜻에서 유래되었습니다.
  • 주의점: 파이썬에서는 5는 정수지만, 5.0은 실수입니다. 이 둘은 엄연히 다른 자료형입니다.

(3) type() 함수로 확인하기

변수에 들어있는 숫자가 정수인지 실수인지 헷갈릴 때는 type() 함수를 사용하면 컴퓨터가 친절하게 알려줍니다.

a = 10
b = 3.14

print(type(a))  # <class 'int'> 라고 출력됨 (정수)
print(type(b))  # <class 'float'> 라고 출력됨 (실수)

 

2. 초보자가 꼭 알아야 할 '부동소수점의 비밀'

여기서 아주 중요한, 그리고 조금은 충격적인 사실을 하나 알려드리겠습니다. 컴퓨터는 실수를 '정확하게' 표현하지 못합니다.

VS Code를 열고 아래 코드를 실행해 보세요.

print(0.1 + 0.2)

여러분의 상식대로라면 0.3이 나와야 합니다. 하지만 파이썬은 0.30000000000000004라는 이상한 결과를 내놓습니다.

왜 이런 일이 발생할까요?

컴퓨터는 모든 정보를 0과 1(이진수)로 저장합니다. 하지만 0.1이나 0.2 같은 십진수 소수는 이진수로 변환하면 0.00011001100...처럼 무한히 반복되는 순환 소수가 됩니다. 메모리는 유한하기 때문에 컴퓨터는 어쩔 수 없이 특정 자리에서 값을 잘라내어 '근삿값'을 저장합니다. 이 과정에서 미세한 오차가 발생하는 것입니다.

[전문가 Tip] 따라서 금융 프로그램처럼 아주 정밀한 계산이 필요할 때는 float 대신 decimal이라는 별도의 모듈을 사용해야 합니다. (이 내용은 추후 중급 강좌에서 다루겠습니다.)



3. 파이썬 사칙연산과 특수 연산자 총정리

이제 본격적으로 계산을 해봅시다. 파이썬에는 기본적인 더하기, 빼기 외에도 프로그래머를 위한 강력한 특수 연산자들이 존재합니다.

(1) 기본 사칙연산 (+, -, *, /)

엑셀이나 계산기와 거의 동일합니다. 다만 나눗셈에 주의해야 합니다.

print(10 + 2)  # 덧셈: 12
print(10 - 2)  # 뺄셈: 8
print(10 * 2)  # 곱셈: 20 (x 대신 * 별표를 사용합니다)
print(10 / 2)  # 나눗셈: 5.0 (중요!)

★ 핵심 포인트: 파이썬 3 버전부터는 나눗셈(`/`)의 결과가 항상 실수(float)로 나옵니다. 딱 떨어지는 10 / 2를 해도 5가 아닌 5.0이 된다는 점을 꼭 기억하세요.

(2) 나눗셈의 심화: 몫(//)과 나머지(%)

코딩을 하다 보면 소수점 필요 없이 정수 부분만 필요하거나, 나머지만 필요한 경우가 훨씬 많습니다. 이때 사용하는 것이 파이썬의 효자 연산자들입니다.

  • 몫 연산자 (//): 나눗셈 결과에서 소수점을 버리고 정수 부분(몫)만 취합니다.
    print(10 // 3)  # 3 (10 나누기 3은 3.333... 이므로 3만 가짐)
  • 나머지 연산자 (%): 나눗셈 후 남은 나머지 값을 구합니다.
    print(10 % 3)   # 1 (몫이 3이고 나머지가 1)

(3) 나머지 연산자(%)는 어디에 쓸까?

초보자분들은 "나머지를 구해서 뭐 하지?"라고 생각할 수 있습니다. 하지만 이 % 연산자는 프로그래밍 논리(Logic)에서 핵심적인 역할을 합니다.

  • 홀수/짝수 판별: 어떤 수를 2로 나눈 나머지가 0이면 짝수, 1이면 홀수입니다. (n % 2 == 0)
  • 배수 판별: 어떤 수를 3으로 나눈 나머지가 0이면 3의 배수입니다.
  • 주기적 실행: 100번째 순서마다 알림을 보내고 싶다면? (count % 100 == 0)

(4) 제곱 연산자 (**)

다른 언어에서는 pow(2, 3)처럼 함수를 써야 하지만, 파이썬은 직관적인 기호를 제공합니다. 곱하기 기호를 두 번 쓰면 됩니다.

print(2 ** 3)  # 2의 3제곱 (2 x 2 x 2) = 8

 

4. 연산자 우선순위 (PEMDAS)

수학 시간과 똑같습니다. 파이썬도 여러 연산자가 섞여 있으면 정해진 순서대로 계산합니다.

  1. 괄호 ( ) : 가장 먼저 계산됩니다.
  2. 제곱 **
  3. 곱하기, 나누기 (*, /, //, %)
  4. 더하기, 빼기 (+, -)
print(2 + 3 * 4)    # 곱하기 먼저: 2 + 12 = 14
print((2 + 3) * 4)  # 괄호 먼저: 5 * 4 = 20

[Tip] 복잡한 식을 짤 때는 헷갈리지 않게 무조건 괄호 ()를 사용하는 것이 좋습니다. 코드는 컴퓨터만 보는 게 아니라 사람도 봐야 하니까요.

 

5. 결론: 계산기는 끝났다

오늘은 파이썬의 숫자 자료형인 정수와 실수의 차이, 그리고 다양한 연산 기호들에 대해 알아보았습니다. 특히 정수 나눗셈(//)나머지 연산(%)은 앞으로 배울 조건문과 반복문에서 수도 없이 등장할 녀석들이니 꼭 직접 타이핑해서 결과를 확인해 보시기 바랍니다.

숫자를 다뤘으니 이제 문자를 다룰 차례입니다. 다음 포스팅에서는 프로그래밍의 꽃이라 불리는 '문자열(String) 다루기: 인덱싱과 슬라이싱'에 대해 아주 재미있게 파헤쳐 보겠습니다. 문자열을 자유자재로 자르고 붙이는 마법 같은 기능을 기대해 주세요.

반응형