파이썬 나눗셈
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