Python實現(xiàn)3行代碼解簡單的一元一次方程
本文所述實例為Python用3行代碼實現(xiàn)解一元一次方程,代碼簡潔高效,具體用法如下:
>>> 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
下面就來解讀下代碼吧。
首先是第一行,它將等式進行了變形,生成了一個結(jié)果為0的算式“x - 2*x + 5*x - 46*(235-24) -( x + 2)”。
第二行用eval來執(zhí)行這個算式,并將x = 1j代入算式,結(jié)果是-9708+3j。
注意x = 1j,所以這個方程就化簡為“-9708+3x = 0”了,只要將-(-9708) / 3就能得到x了。
而-9708是這個復(fù)數(shù)的實部,3是這個復(fù)數(shù)的虛部,于是結(jié)果變成了“-c.real/c.imag”。
因此很顯然,這個函數(shù)是不能解復(fù)數(shù)方程的。
順帶一提,Python 2.x的/運算會使用整數(shù)除法,導(dǎo)致小數(shù)部分丟失,所以要獲得正確結(jié)果就應(yīng)該使用Python 3.x。
希望本文所述實例對大家學(xué)習Python能有所幫助。
相關(guān)文章
Python+OpenCV之形態(tài)學(xué)操作詳解
這篇文章主要為大家詳細介紹了Python?OpenCV中的形態(tài)學(xué)操作(開運算、閉運算)的實現(xiàn),文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下2022-09-09Python循環(huán)中else,break和continue的用法實例詳解
這篇文章主要介紹了Python循環(huán)中else,break和continue的用法,結(jié)合實例形式詳細分析了Python for循環(huán)、while循環(huán)中else,break和continue的功能、用法及相關(guān)操作注意事項,需要的朋友可以參考下2019-07-07python中如何實現(xiàn)將數(shù)據(jù)分成訓(xùn)練集與測試集的方法
這篇文章主要介紹了python中如何實現(xiàn)將數(shù)據(jù)分成訓(xùn)練集與測試集的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧2019-09-09Pytorch中關(guān)于nn.Conv2d()參數(shù)的使用
這篇文章主要介紹了Pytorch中關(guān)于nn.Conv2d()參數(shù)的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06Python3 執(zhí)行Linux Bash命令的方法
今天小編就為大家分享一篇Python3 執(zhí)行Linux Bash命令的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07