프로그래밍언어/파이썬[Error]
[파이썬][Error] 110. ValueError - math domain error
about_IT
2025. 6. 1. 00:56
728x90
ValueError: math domain error
는 수학 함수에 정의되지 않은 입력값을 제공했을 때 발생하는 오류입니다. 예를 들어 math.sqrt()
, math.log()
, math.acos()
등의 함수는 특정 입력 범위에만 유효하므로 잘못된 값을 넣으면 이 오류가 발생합니다.
이 오류는 특히 음수 루트 계산, 0 이하의 로그 계산 등에서 자주 발생하며, 수학적으로 정의되지 않은 연산을 시도했음을 의미합니다.
● 오류 발생 예시
import math
x = -1
print(math.sqrt(x)) # 오류 발생
math.sqrt()
함수는 0 이상의 실수만 허용하므로 위 예제에서는 ValueError
가 발생합니다.
● 주요 원인
math.sqrt()
에 음수 입력math.log()
에 0 이하 입력math.acos()
에 -1 ~ 1 범위 외의 값 입력
● 해결 방법
- 입력값이 유효한 수학 도메인 범위 내에 있는지 사전 확인
- 필요 시
try-except
로 예외 처리 - 복소수 계산이 필요한 경우
cmath
모듈 사용 고려
● 예시 코드 (정상 처리)
import math
x = -1
if x >= 0:
print(math.sqrt(x))
else:
print("음수에는 sqrt 불가")
● 결론
수학 함수는 정의된 입력 범위를 벗어나는 경우 math domain error
를 발생시킵니다. 따라서 입력값에 대한 유효성 검사를 철저히 하고, 예외 처리를 통해 프로그램이 중단되지 않도록 하는 것이 중요합니다.
728x90