二次方程求解器数学域E

2024-05-19 01:39:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着做一个二次方程求解器,但是每次我运行它,它都会显示一个数学域错误。谁能帮我修好它吗?我对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))

Tags: oftheimportinputreturnisvaluedef
1条回答
网友
1楼 · 发布于 2024-05-19 01:39:46

您的代码通常可以工作,但是应该检查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

相关问题 更多 >

    热门问题