1. 程式人生 > 其它 >用python寫一個解一元二次方程的類

用python寫一個解一元二次方程的類

技術標籤:python

第一步 明確需要的變數

要解一元二次方程,肯定先把它化成一般式:ax^2+bx+c=0,我們需要用到的引數是a,b,c還有一個判別式”▲“ ,可以隨意給個名字,我這裡給的g。

第二步 建立一個類

類的名字一般首字母大寫,然後以冒號結尾,程式碼如下:

class Equation:
    a = int(input('輸入a值:'))
    b = int(input('輸入b值:'))
    c = int(input('輸入c值:'))
    g = 0

這裡的a,b,c,g就是建立的類變數:類變數在整個例項化的物件中是公用的。類變數定義在類中且在函式體之外。類變數通常不作為例項變數使用。

第三步 建立類的方法

類的方法與普通的函式只有一個特別的區別——它們必須有一個額外的第一個引數名稱, 按照慣例它的名稱是 self(可以用其他的)。

第一個方法 計算出判別式的值

在方法裡引用變數要用self.+變數名,然後根據python的語法打出計算公式,注意縮排,如下:

    def getDiscriminant(self):
        print('判別式等於')
        print(self.b * self.b - 4 * self.a * self.c)
        self.g = self.b * self.b - 4 * self.a * self.
c

第二個方法 計算根的值

公式法直接寫出來,注意縮排,:

    def getRoot1(self):
        if self.b * self.b - 4 * self.a * self.c >= 0:
            print('第一個實根為:')
            print((-self.b + self.g ** 0.5) / (2 * self.a))
        else:
            print("此方程無實根。")

如果沒有實根就直接列印無根就行了。
第二個根也是一樣的:

    def getRoot2(self)
: if self.b * self.b - 4 * self.a * self.c >= 0: print('第二個實根為:') print((-self.b - self.g ** 0.5) / (2 * self.a)) else: return 0

如果無實根,第一個已經列印了,所以我們這裡返回0。

最後一步 我們呼叫這個類

先例項化這個類,再依次訪問類的方法,如下:

zxc = Equation()
zxc.getDiscriminant()
zxc.getRoot1()
zxc.getRoot2()

執行結果

總結

建立類,在寫出你在整個類要呼叫的類變數,建立類方法,方法裡可建立只在本方法使用的變數,此外注意縮排。最後例項化,訪問類屬性。
ps:新手學python,第一次寫部落格,沒有排版,沒有什麼技術含量,純粹分享學習,希望大佬們指出我的不足之處。