我正在编写一个代码来帮助我解决Python中的毕达哥拉斯定理。问题是,当我让代码尝试解决B时,我不断收到这个错误。
这总是让我遇到问题:
bsqr = (int(c) ** 2) - (int(a) ** 2)
b = int(bsqr) / sqrt(bsqr)
我收到此错误:
Traceback (most recent call last):
File "<pyshell#24>", line 1, in <module> pythag()
File "C:\Python34\fact.py", line 156, in pythag
b = int(bsqr) / sqrt(bsqr)
ValueError: math domain error
导致此错误的原因是什么,我该如何解决?
答案 0 :(得分:5)
可能是因为bsqr
是否定的,并且取负数的sqrt并不能很好地工作。
>>> import math
>>> math.sqrt(-1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: math domain error
检查你的代数/输入。 c
(hypoteneuse)总是大于任何一条腿(a
和b
)
另外,请注意,如果您恰好输入ZeroDivisionError
和a
相等的值(c
截断它们之后),您也可以获得int
答案 1 :(得分:0)