Python二次方程Class

Python Quadratic Equation Class

我目前正在 python 中创建一个 class 来生成二次方程。我在 class 中写下了一个判别函数,我试图在 roots 函数中调用它,但是,我不确定该怎么做。我收到属性错误。

AttributeError: 'QuadraticEquation' 对象没有属性 'discrimiant'

def discriminant(self):
    return ((self.b)**2) - (4 * self.a * self.c)

def root1(self):
    if self.discrimiant() < 0:
        return None
    else:
        return (-self.b + math.sqrt(self.discriminant())) / (2 * self.a)
def root2(self):
    if self.discrimiant() < 0:
        return None
    else:
        return (-self.b - math.sqrt(self.discriminant())) / (2 * self.a)

您的代码中存在拼写错误。 discriminant,而不是 discrimiant。这是一个工作代码 -

class QuadraticEquation:
    def __init__(self, a, b, c):
        self.a = a
        self.b = b
        self.c = c
    def discriminant(self):
        return ((self.b)**2) - (4 * self.a * self.c)

    def root1(self):
        if self.discriminant() < 0:
            return None
        else:
            return (-self.b + math.sqrt(self.discriminant())) / (2 * self.a)
    def root2(self):
        if self.discriminant() < 0:
            return None
        else:
            return (-self.b - math.sqrt(self.discriminant())) / (2 * self.a)

a = QuadraticEquation(1,2,3)
print a.root1()
print a.root2()
print a.discriminant()