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

2021-10-13 17:48:30 字數 1746 閱讀 9482

要解一元二次方程,肯定先把它化成一般式: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。

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

建立類,在寫出你在整個類要呼叫的類變數,建立類方法,方法裡可建立只在本方法使用的變數,此外注意縮排。最後例項化,訪問類屬性。

ps:新手學python,第一次寫部落格,沒有排版,沒有什麼技術含量,純粹分享學習,希望大佬們指出我的不足之處。

Python 解一元二次方程

請定義乙個函式quadratic a,b,c 接收3個引數,返回一元二次方程 ax2 bx c 0的兩個解。coding utf 8 可將quadratic a,b,c 單獨寫為b.py,之後在a.py中通過from b import quadratic呼叫這個函式 import math def ...

Python 解一元二次方程

今天看到廖雪峰老師的python3,看到函式後面的練習 如何解一元二次方程 感覺蠻簡單的就開啟text sblime去試試 糟糕 竟然忘了怎麼求一元二次方程!查資料 終於查好了!開始動手 1,匯入math模組 2.定義函式def n d return math.sqrt d def quadrati...

python解一元二次方程

剛開始碰到這個問題,習慣性地想要用迭代的方式來做,居然忘記了解方程的公式.思路 公式法解方程即可,先計算delta b 2 4ac 若delta 0,則判斷方程無解 為方便起見,忽略複數解 若delta 0,則 import math def quadratic a,b,c delta b 2 4 ...