>> solve(x - 2*x + 5*x - 46*(235-24) = x + 2) 3236.0 功能代碼如下: def solve(eq,var='x'): eq1 = eq.replace(=,-" />
>>> solve("x - 2*x + 5*x - 46*(235-24) = x + 2") 3236.0
功能代碼如下:
def solve(eq,var='x'): eq1 = eq.replace("=","-(")+")" c = eval(eq1,{var:1j}) return -c.real/c.imag
下面就來解讀下代碼吧。
首先是第一行,它將等式進行了變形,生成了一個結果為0的算式“x - 2*x + 5*x - 46*(235-24) -( x + 2)”。
第二行用eval來執行這個算式,并將x = 1j代入算式,結果是-9708+3j。
注意x = 1j,所以這個方程就化簡為“-9708+3x = 0”了,只要將-(-9708) / 3就能得到x了。
而-9708是這個復數的實部,3是這個復數的虛部,于是結果變成了“-c.real/c.imag”。
因此很顯然,這個函數是不能解復數方程的。
順帶一提,Python 2.x的/運算會使用整數除法,導致小數部分丟失,所以要獲得正確結果就應該使用Python 3.x。
希望本文所述實例對大家學習Python能有所幫助。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com