728x90
이 챕터에서는 Python에서 0으로 나누기 시도 시 발생하는 ZeroDivisionError의 정의와 주요 원인, 예제, 해결 방법을 단계별로 살펴봅니다. 예제 코드와 출력 예시, 디버깅 팁을 통해 초보 개발자도 쉽게 문제를 이해하고 해결할 수 있습니다. 마지막에는 다음 챕터인 IndexError: 시퀀스 인덱스 범위 초과 예고가 포함되어 있습니다.
1. ZeroDivisionError란?
ZeroDivisionError는 분모가 0인 나누기(/
) 또는 모듈로(%
) 연산을 시도할 때 발생하는 예외입니다. Python에서는 수학적으로 정의되지 않은 연산을 막기 위해 런타임(runtime) 중에 이 예외를 발생시킵니다. ZeroDivisionError는 ArithmeticError
의 하위 클래스이며, 연산 오류를 나타내는 대표적인 예외입니다. 나누기 연산뿐만 아니라 모듈로 연산에서도 동일하게 발생합니다.
2. 실습 예제
아래 예제 코드를 실행하면 ZeroDivisionError가 발생하는 대표적인 상황을 확인할 수 있습니다.
# 예제: 분모가 0인 나누기
def safe_divide(a, b):
return a / b
print(safe_divide(10, 0)) # ZeroDivisionError: division by zero
# 모듈로 연산에서도 동일하게 발생
print(10 % 0) # ZeroDivisionError: integer division or modulo by zero
3. 실행 결과 및 설명
실행 시 터미널에 다음과 같은 메시지가 출력됩니다:
Traceback (most recent call last):
File "example.py", line 3, in
print(safe_divide(10, 0))
ZeroDivisionError: division by zero
Traceback (most recent call last):
File "example.py", line 6, in
print(10 % 0)
ZeroDivisionError: integer division or modulo by zero
4. 해결 방법 & 디버깅 팁
- 분모 검증: 연산 전에
if
문으로 분모가 0인지 확인해 예외를 방지합니다.if denominator != 0: result = numerator / denominator else: result = None # 또는 사용자 메시지 출력
- try-except 블록 활용: 예외 처리 구문으로 ZeroDivisionError만 잡아 사용자 정의 로직을 수행합니다.
try: result = x / y except ZeroDivisionError: print("0으로 나누기 오류가 발생했습니다.")
- 함수 내부 검증 추상화: 입력 검증 로직을 함수에 모아 재사용성을 높입니다.
def divide(a, b): if b == 0: return None return a / b
- 사용자 입력 검증:
input()
으로 받은 값을str.isdigit()
등으로 검사해 0 입력을 사전에 차단합니다. - 로깅 및 사용자 피드백: 예외 발생 시 로깅을 통해 모니터링하고, 사용자에게 친절한 안내 메시지를 제공합니다.
5. 정리 및 다음 단계
이번 챕터에서는 ZeroDivisionError의 정의, 주요 원인, 실습 예제, 해결 방법까지 단계별로 살펴보았습니다. 분모 검증 및 예외 처리로 프로그램 중단 없이 안정적으로 연산을 수행하는 방법을 습득하셨길 바랍니다. 다음 챕터에서는 IndexError: 시퀀스 인덱스 범위 초과 문제의 원인과 해결 방법을 다룰 예정이니 많은 기대 부탁드립니다.
반응형
'08.개발&프로그래밍 > 1.파이썬' 카테고리의 다른 글
8. Python KeyError(딕셔너리에 없는 키 접근) 완벽 가이드 (0) | 2025.07.18 |
---|---|
7. Python IndexError(시퀀스 인덱스 범위 초과) 완벽 가이드 (0) | 2025.07.18 |
5. ValueError(값이 유효하지 않을 때) 완벽 가이드 (0) | 2025.07.15 |
4. Python TypeError(잘못된 자료형 연산) 완벽 가이드 (0) | 2025.07.15 |
3. Python NameError(정의되지 않은 이름 사용) 완벽 가이드 (0) | 2025.07.15 |