본문 바로가기
파이썬

파이썬 수학 도메인 오류-sqrt

by º기록 2020. 11. 25.
반응형

문제의 원인은 무엇입니까?

from math import sqrt
print "a : "
a = float(raw_input())
print "b : "
b = float(raw_input())
print "c : "
c = float(raw_input())
d = (a + b + c)/2
s = sqrt(d*(d-a)*(d-b)*(d-c))
print "a+b+c =", a, b, c
print "Distr. =", d*2, "Area =", s

오류:

Traceback (most recent call last):
   File "C:/Python27/fájlok/háromszög terület2.py", line 11, in <module>
       s = sqrt(d*(d-a)*(d-b)*(d-c))
ValueError: math domain error

 

해결 방법

 


이를 위해 코드를 사용할 때 더 나은 방법은 예외 처리 를 사용하는 것입니다.

try:
    s = sqrt(d*(d-a)*(d-b)*(d-c))
    print "a+b+c =", a, b, c
    print "Distr. =", d*2, "Area =", s
except ValueError:
    print "Please enter 3 valid sides"

try 블록없이 수행하려면 다음과 같이 할 수 있습니다.

delta = (d*(d-a)*(d-b)*(d-c))
if delta>0:
    s = sqrt(delta)
    print "a+b+c =", a, b, c
    print "Distr. =", d*2, "Area =", s
else:
    print "Please enter 3 valid sides"

 

참조 페이지 https://stackoverflow.com/questions/29375970

 

 

반응형

댓글