Python一元二次方程求根
阿新 • • 發佈:2018-12-07
Python一元二次方程求根
1、任務簡介
在之前的部落格中我分享了使用Java進行一元二次方程求根的方法,在學習了Python之後我也想使用Python編寫一個類似的程式,故在編寫成功後將該任務分享出來。
2、任務程式碼
學習過Java和Python的人都知道,Python的語法比Java簡潔得多,並且目前已經廣泛應用於爬蟲開發、web開發、人工智慧和機器學習等主流方向,是一種面向物件的語言,我學習Python的初衷就是為了學習爬蟲,目前只是個小白,故只能給大家分享求根計算的程式,哈哈。
在Python中可以使用input來讀取使用者輸入的資訊,但是預設將使用者輸入的的資訊儲存為字串的形式,所以需要強制型別轉換為float的形式,這樣在計算時才可以避免出現錯誤,在計算根時使用的語句和Java類似,但是math應全為小寫,輸出語句中的連線應該為逗號“,”。
程式程式碼如下:
import math
a = float(input("請輸入a的值:"))
b = float(input("請輸入b的值:"))
c = float(input("請輸入c的值:"))
x1=((-b+math.sqrt(b**2-4*a*c))/(2*a))
x2=((-b-math.sqrt(b**2-4*a*c))/(2*a))
print("x1=",x1,"\t","x2=",x2)
對比發現實現相同功能的Java程式有近19行,而Python程式僅有7行,實在是簡潔得多。
執行結果如下圖:
還可以對程式進行改進,使它能判斷是否有根等,具體程式碼如下:
import math
a = float(input("請輸入a的值:"))
b = float(input("請輸入b的值:"))
c = float(input("請輸入c的值:"))
if a != 0:
delta = b**2-4*a*c
if delta < 0:
print("無根")
elif delta == 0:
s = -b/(2*a)
print("唯一根x=",s)
else :
root = math.sqrt(delta)
x1 = (-b+root) /(2*a)
x2 = (-b-root)/(2*a)
print("x1=",x1,"\t","x2=",x2)
即便是加入這些功能,Python程式碼也僅有16行,故可以發現它相比Java的簡潔性,改程式讀者可自行驗證,我就不發運行截圖了。
3、總結
通過本部落格分享了Python製作的一元二次方程求根小程式,大家可以對比之前Java編寫該程式的部落格《使用Java實現一元二次方程求根計算器》,可以發現兩種語言之間部分語法是相通的,這也為我們的學習提供了方便。