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