2016-11-18 67 views
1

我目前在python中創建一個類來創建一個二次方程。我在課堂上寫下了一個判別函數,我試圖在根函數中調用它,但是,我不確定如何確定它。我收到屬性錯誤。Python二次方程類

AttributeError的: '一元二次方程' 對象有沒有屬性 '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) 
+1

看起來不錯 –

+2

你有什麼問題? 'self.discriminant()'應該是正確的調用? – danielunderwood

+0

越來越AttributeError:'QuadraticEquation'對象沒有屬性'discriminmiant' –

回答

0

。在你的代碼中的拼寫錯誤。 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()