在python2.7中计算二次方程的代码有什么问题?

2024-04-25 12:59:45 发布

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

def quad(a, b, c):
    solution1 = (-b + ((b**2 - 4 * a * c)**0.5)) / 2 * a
    solution2 = (-b - ((b**2 - 4 * a * c)**0.5)) / 2 * a
    return solution1, solution2

while True:
    print "\nax^2 + bx + c = 0"
    a = input("What does 'a' equal? ")
    b = input("What does 'b' equal? ")
    c = input("What does 'c' equal? ")

    answera, answerb = quad(a, b, c)
    print "(x -", str(answera) + ")(x -", str(answerb) + ") = 0"
    print "x=" + str(answera) + ",x=" + str(answerb)

这个代码适用于“b”和“c”上的任何数字,(在合理范围内),但是每当“a”不是1时,代码就给出了错误的数字,我不知道它出了什么问题。你知道吗


Tags: 代码inputreturndef数字equalwhatprint
2条回答

按照行动顺序,在你的陈述中

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

,首先将结果除以2,然后将结果乘以a。这不是您想要的:您想要将2*a的结果分成其余部分。通过在分母周围加括号来解决这个问题:

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

/ 2 * a时,首先除以2,然后乘以a。你知道吗

您想改为写/ (2 * a)。你知道吗

相关问题 更多 >