Python数学域错误

时间:2017-01-23 17:59:07

标签: python math quadratic sqrt

我正在制作一个解决二次方程并打印根的程序。在我进入主程序之前,我只是想让平方根工作。我得到的错误是"数学域错误"。如果有人可以给我一些帮助,为什么它不起作用那将是伟大的。

import math

    a = int(sys.argv[1])
    b = int(sys.argv[2])
    c = int(sys.argv[3])
    x1 = int
    x2 = int
    #  variables into solving equation and assign answers
    print(math.sqrt((b**2)-(4*a*c)))

1 个答案:

答案 0 :(得分:0)

众所周知,当您尝试使用负数时,sqrt会出现错误。

结果可能是一个复数,并且如098799的评论中所述,“math.sqrt不会给你复杂的数字”

而不是使用:

import math
print(math.sqrt((b**2)-(4*a*c)))

尝试使用:

import cmath
print(cmath.sqrt((b**2)-(4*a*c)))

它适用于cmath,因为它可以访问复数的数学函数。