我正在嘗試使用公式創建一個二次型計算器,並且我不斷收到一個數學域錯誤。我們在這裏我的代碼:數學域錯誤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' - 它可以讓你操作複雜的數字。 –