用純字符串格式來記錄二次方程:
- '3x^2-10x-8=0'
- 'x^2-2x 1=0'
- '3x^2 14x 8=0'
- 'x^2=9'
二次方怎麼表示呢?比如上面的^表示法,或者是Python風格的**表示法,甚至是更簡單的直接用x2表示x的二次方,都是可以的。對于我們求解來說,無論用哪種方法都沒問題,在代碼隻需非常小的改動(後面将指出)。
所謂編程,就用抽象的方法來解決問題:上面這些二次方程,我們抽象為這樣的格式:
ax^2 bx c=d
注意,我們無須限定等号右邊為0
如果你看了前面的《用python編程7行代碼解數學方程(ax b=c的形式)》就知道我們思路仍然是先取參數,然後用數學的方法來求解。
這裡,我們會看到利用python函數返回多值的貼心功能來直接返回二次方程的兩個解。
這就是完整的解方程代碼:
如果你不是x^2來表示x的二次方,隻需在第三行對應位置修改即可。
在代碼的4,5,6,7行,都用了Python的三目表達式功能讓代碼更加簡短清晰。特别注意第4行的三目表達式怎樣同時給兩個參數賦值。
下面來看測試代碼:
在上篇文章的中代碼,我們對于參數缺項沒有充分考慮,在本篇的取參數的代碼中,做了更多的判斷,所以能夠支持更多的特殊情況。但仍然存在一個沒有考慮到的地方,你能指出來麼?
,