1. 程式人生 > >Python一元二次方程求根

Python一元二次方程求根

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實現一元二次方程求根計算器》,可以發現兩種語言之間部分語法是相通的,這也為我們的學習提供了方便。