대부분의 컴퓨터 연산에서 0으로 나누려는 경우 에러가 발생한다. 파이썬에서 0으로 나누려고 할때는 ZeroDivisionError라는 예외가 자바에서 0으로 나누는 경우 ArithmeticException이라는 예외가 발생한다.C/C++에서도 0으로 나누는 경우 정의되지 않은 동작이라고 간주되며, 이는 런타임 에러로 이어질 수 있어 주의 해야한다.
이때 0으로 나눌 때 에러가 발생하는 이유는 다음과 같다.
1) 정의 되지 않은 결과
수학적으로 어떤 수를 0으로 나누면 결과가 정의 되지 않는다. 0을 나눈다는 것을 결과를 정의 할 수 없어 에러가 발생한다.
2) 무한대의 개념
0으로 나누는 경우 결과를 무한대로 근사 할 수 있다. 하지만 프로그래밍 언어에서는 명확한 정의를 제공하기 위해 0으로 나누는 경우 에러를 발생시키는 것이다.
따라서, 프로그래밍 언어에서는 0으로 나누는 상황을 방지하기 위해 조건문이나 예외 처리를 사용해야 한다.
파이썬에서 그 예외 처리 방법은 다음과 같이 대표적으로 2가지이다.
1) if 문 사용
numerator = 5 denominator = 0
if denominator != 0:
result = numerator / denominator
print(result)
else:
print("Error: Division by zero")
> 2) try - catch 사용
numerator = 5
denominator = 0
try:
result = numerator / denominator
print(result)
except ZeroDivisionError:
print("Error: Division by zero")