Python二次方程类

2024-04-25 00:08:37 发布

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

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

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)

Tags: 函数selfnonereturnif属性def错误
1条回答
网友
1楼 · 发布于 2024-04-25 00:08:37

你的代码有个拼写错误。discriminant,而不是{}。这是一个有效的代码-

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()

相关问题 更多 >