1、我們先要了解一元二次方差的求法,然後逐步編寫程式。方程為:ax^2+bx+c=0。我們先編寫一個最簡單的版本,我們成功的計算除了數值。
2、如果我們把方程的係數進行變化,假設a=1,b=3,c=5。就會發現程式報錯了,這就牽扯到了math包的侷限性,如果是math包,則不能處理複述,本題的方程求解出的是複數,所以需要用到cmath。
3、我們同樣輸入a=1,b=3,c=5。這時候我們就沒有報錯得出了,我們想要的結果。但如果我們使用cmath時,輸入一個有實數解的方程後,我們就會得到帶有j的答案。
4、如果答案是實數的話,我們得到的是一個帶有j的答案,我們想要沒有j的答案就需要寫一個迴圈,對是否有實數解做一個簡單的判斷。函式邏輯還是很清楚的,判斷方程如果小於0,我們就使用cmath函式,其他時候使用math函式。
5、在寫這個函式時,我們遇到一個問題,那就是如果我們再輸入引數時,輸入錯誤了,沒有輸入數字,我們的程式就會報錯,如果我們想讓程式繼續執行,我們需要寫一個判斷函式,如果輸入的不是數字,就需要繼續輸入。
6、最後一步,我們只需要把上述語句整合到一起,然後使用while語句就可以得到根據我們的需要不停地進行運算。
1、我們先要了解一元二次方差的求法,然後逐步編寫程式。方程為:ax^2+bx+c=0。我們先編寫一個最簡單的版本,我們成功的計算除了數值。
2、如果我們把方程的係數進行變化,假設a=1,b=3,c=5。就會發現程式報錯了,這就牽扯到了math包的侷限性,如果是math包,則不能處理複述,本題的方程求解出的是複數,所以需要用到cmath。
3、我們同樣輸入a=1,b=3,c=5。這時候我們就沒有報錯得出了,我們想要的結果。但如果我們使用cmath時,輸入一個有實數解的方程後,我們就會得到帶有j的答案。
4、如果答案是實數的話,我們得到的是一個帶有j的答案,我們想要沒有j的答案就需要寫一個迴圈,對是否有實數解做一個簡單的判斷。函式邏輯還是很清楚的,判斷方程如果小於0,我們就使用cmath函式,其他時候使用math函式。
5、在寫這個函式時,我們遇到一個問題,那就是如果我們再輸入引數時,輸入錯誤了,沒有輸入數字,我們的程式就會報錯,如果我們想讓程式繼續執行,我們需要寫一個判斷函式,如果輸入的不是數字,就需要繼續輸入。
6、最後一步,我們只需要把上述語句整合到一起,然後使用while語句就可以得到根據我們的需要不停地進行運算。