파이썬 나눗셈

IT 위키

파이썬 나눗셈(Python Division)은 파이썬에서 숫자를 나누는 연산을 의미하며, 다양한 연산자와 내장 함수를 제공한다. 기본적으로 파이썬에서는 정수 나눗셈과 실수 나눗셈을 구분하며, 나머지를 구하는 연산도 지원한다.

1 나눗셈 연산자[편집 | 원본 편집]

파이썬에서는 다음과 같은 연산자를 사용하여 나눗셈을 수행할 수 있다.

  • 실수 나눗셈 (`/`)
    • 두 수를 나눈 후 결과를 부동소수점(float) 값으로 반환한다.
    • 정수끼리 나누더라도 결과는 실수(`float`)로 나온다.
    • 예제:
print(10 / 3)  # 출력: 3.3333333333333335
print(10 / 2)  # 출력: 5.0
  • 정수 나눗셈 (`//`)
    • 몫만 반환하며, 결과는 정수(int) 또는 실수(float) 타입이 될 수 있다.
    • 예제:
print(10 // 3)  # 출력: 3
print(10 // 2)  # 출력: 5
print(10.5 // 2)  # 출력: 5.0
  • 나머지 연산 (`%`)
    • 나눗셈의 나머지를 반환한다.
    • 예제:
print(10 % 3)  # 출력: 1
print(10 % 2)  # 출력: 0
  • 몫과 나머지를 동시에 반환 (`divmod()`)
    • `divmod(a, b)` 함수는 (몫, 나머지) 형태의 튜플을 반환한다.
    • 예제:
print(divmod(10, 3))  # 출력: (3, 1)
print(divmod(20, 7))  # 출력: (2, 6)

2 나눗셈 연산자의 동작 방식[편집 | 원본 편집]

2.1 정수 나눗셈과 실수 나눗셈의 차이[편집 | 원본 편집]

  • `/` 연산자는 정수끼리 나누더라도 항상 float 결과를 반환한다.
  • `//` 연산자는 소수점을 버리고 정수만 반환한다.

예제:

a = 7
b = 2

print(a / b)   # 출력: 3.5  (실수 나눗셈)
print(a // b)  # 출력: 3    (정수 나눗셈)

2.2 음수 나눗셈[편집 | 원본 편집]

음수를 포함한 나눗셈에서는 결과가 다르게 나타날 수 있다.

예제:

print(-10 / 3)   # 출력: -3.3333333333333335
print(-10 // 3)  # 출력: -4
print(-10 % 3)   # 출력: 2  # 파이썬의 나머지 연산은 부호가 나눠지는 수와 다를 수 있음

정수 나눗셈(`//`)은 항상 내림(floor) 방향으로 반올림되므로, 음수에서는 절댓값이 더 큰 방향으로 결과가 나올 수 있다.

3 나눗셈 관련 예외 처리[편집 | 원본 편집]

3.1 0으로 나누기 (ZeroDivisionError)[편집 | 원본 편집]

0으로 나누는 경우 오류가 발생한다.

print(10 / 0)  # ZeroDivisionError: division by zero

이를 방지하려면 예외 처리를 사용해야 한다.

try:
    result = 10 / 0
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다.")

3.2 부동소수점 오차[편집 | 원본 편집]

실수형 데이터를 나눌 때, 부동소수점 연산의 한계로 인해 정확한 결과가 나오지 않을 수 있다.

print(0.1 + 0.2)  # 출력: 0.30000000000000004

이런 문제를 해결하려면 `decimal` 또는 `fractions` 모듈을 사용할 수 있다.

4 나눗셈 관련 모듈[편집 | 원본 편집]

  • math 모듈
    • `math.floor()` : 내림 연산
    • `math.ceil()` : 올림 연산
    • `math.trunc()` : 소수점 이하 절삭

예제:

import math
print(math.floor(3.7))  # 출력: 3
print(math.ceil(3.7))   # 출력: 4
print(math.trunc(3.7))  # 출력: 3
  • decimal 모듈
    • 부동소수점 오차를 방지하고, 정확한 소수 계산을 수행하는 데 사용된다.

예제:

from decimal import Decimal

a = Decimal("0.1")
b = Decimal("0.2")
print(a + b)  # 출력: 0.3
  • fractions 모듈
    • 분수 형태로 연산을 수행할 수 있다.

예제:

from fractions import Fraction

a = Fraction(1, 3)
b = Fraction(2, 3)
print(a + b)  # 출력: 1

5 같이 보기[편집 | 원본 편집]

6 참고 문헌[편집 | 원본 편집]