我正在尝试制作二次方程求解器,但每次运行它时,都会显示数学域错误。任何人都可以帮我修复它吗?我是Python的新手。
import math
def quadratic(a, b, c):
return [((-b + i * math.sqrt(b**2 - 4*a*c)) / (2 * a)) for i in (-1,1)]
a = int(input("What is the value of a? "))
b = int(input("What is the value of b? "))
c = int(input("What is the value of c? "))
print(quadratic(a, b, c))
答案 0 :(得分:0)
您的代码一般有效,但应检查b**4-a*c
是否为正数。这(可能)是您收到错误的原因
def quadratic(a, b, c):
D = b**2 - 4*a*c
if D >= 0:
return [((-b + i * math.sqrt(D)) / (2 * a)) for i in (-1, 1)]
else:
return None