我想知道是否有人可以告诉我为什么我的用于求解二次方程的python代码无法正常工作。我查看了它,没有发现任何错误。

print("This program will solve quadratic equations for you")

print("It uses the system 'ax**2 + bx + c'")

print("a, b and c are all numbers with or without decimal \
points")

print("Firstly, what is the value of a?")

a = float(input("\n\nType in the coefficient of x squared"))

b = float(input("\n\nNow for b. Type in the coefficient of x"))

c = float(input("\n\nGreat. now what is the c value? The number alone?"))

print("The first value for x is " ,(-b+(((b**2)-(4*a* c))* * 0.5)/(2*a)))

print("\n\nThe second value for x is " ,(-b-(((b * * 2)-(4*a*c))** 0.5)/(2*a)))

当a = 1 b = -4和c = -3时我期望-1和4但得到5.5和0.5

最佳答案

您的麻烦在于尝试做二次公式的部分:

(-b+(((b**2)-(4*a* c))* * 0.5)/2*a)

问题在于*的优先级与/相同,因此您要除以2,然后再乘以a。另外,您的括号也已关闭,因此我减少了不必要的括号,并移动了错误的括号。简而言之,-b在除法之前没有与平方根放在一起。您想要的是:
(-b+(b**2-4*a*c)**0.5)/(2*a)

P.S.为了提出问题,最好以类似以下形式的形式提问:
>>> a = 2
>>> b = 1
>>> c = 3
>>> (-b+(((b**2)-(4*a* c))* * 0.5)/2*a)
got blah, expected blam

由于其他的打印和输入不应该受到指责(您应该可以很容易地得出结论)。

10-07 15:39