我正在尝试使用公式创建一个二次型计算器,并且我不断收到一个数学域错误。我们在这里我的代码:数学域错误Python
# coding: utf-8
from math import sqrt
a = 3
b = 9
c = 2
appaul = ((-1 * b) + sqrt((b ** 2) * (-4 * a * c)))/2
print appaul
我正在尝试使用公式创建一个二次型计算器,并且我不断收到一个数学域错误。我们在这里我的代码:数学域错误Python
# coding: utf-8
from math import sqrt
a = 3
b = 9
c = 2
appaul = ((-1 * b) + sqrt((b ** 2) * (-4 * a * c)))/2
print appaul
的修正你的代码(Python 3中)之前负:
from math import sqrt
a = 3
b = 9
c = 2
appaul = (-b + sqrt(b**2 - 4*a*c))/2*a
print(appaul)
appaul = ((-1 * b) + sqrt((b ** 2) - (4 * a * c)))/2
b^2 - 4AC,非b^2 * 4AC。
你-
应该来外
>>> appaul = ((-1 * b) + sqrt((b ** 2) - (4 * a * c)))/2
>>> print appaul
-0.725082782365
这是一个负数。你正在试图找到它的平方根。
(b ** 2) * (-4 * a * c)
要看到它的效果,在执行这个
num = (b ** 2) * (-4 * a * c)
print num
appaul = ((-1 * b) + sqrt(num))/2
print appaul
结果 -
-1944
Traceback (most recent call last):
File "solution.py", line 118, in <module>
appaul = ((-1 * b) + sqrt(num))/2
ValueError: math domain error
开头的负数就是你正在努力寻找的平方根数。
您正在使用负数的sqrt。 'b^2 - 4ac < 0' =>没有解决方案! – gtlambert
您的二次公式中的错字 - 应该是'(b ** 2) - (4 * a * c)',而不是相乘的项。 – whrrgarbl
尝试'从cmath导入sqrt' - 它可以让你操作复杂的数字。 –