以下二次方程代码有什么问题?

时间:2016-09-12 01:26:06

标签: python variables math floating-point quadratic

我正在尝试制作一个程序,使用二次公式将标准形式二次方程式转换为因式形式,但我在开始数学的部分出现错误。它似乎与我使用的花车有问题,但我不知道为什么,也不知道如何解决它。

这是我得到的错误:

Traceback (most recent call last):
  File "C:\Users\Josef\Documents\Python\standardFactored.py", line 25, in <module>
    rightS = b^2-4*a*c
TypeError: unsupported operand type(s) for ^: 'float' and 'float'

以下是代码:

print("This program will convert standard form quadratic equations to "
      "factored form. ax^2+bx+c --> a(x+ )(x+ )")

while True:
    try:
        a = float(raw_input("a = "))
        break
    except:
        print("that is not a valid number")

while True:
    try:
        b = float(raw_input("b = "))
        break
    except:
        print("that is not a valid number")

while True:
    try:
        c = float(raw_input("c = "))
        break
    except:
        print("that is not a valid number")

rightS = b^2-4*a*c
try:
    math.sqrt(rightS)
except:
    ("There is no factored for for this equation")
    quit()

1 个答案:

答案 0 :(得分:2)

^运算符可能无法达到预期效果。它是二进制XOR或e X 集群 OR 运算符。 XOR运算符不处理浮点数,从而产生错误。该错误基本上表示它无法对两个浮点运行。使用指数,使用双星号。请参阅Python运算符here

例如,a到电源b是:

a ** b

在你的情况下,它将是:

rightS = b ** 2 - 4 * a * c