Pythonは3行のコード解の簡単な1元の一回の方程式を実現します
784 ワード
本明細書の例はPythonが3行のコードで解一元一次方程式を実現し、コードは簡潔で効率的であり、具体的な使い方は以下の通りである.
機能コードは次のとおりです.
コードを解読してみましょう.
まず最初の行で、等式を変形し、結果0の計算式「x-2*x+5*x-46*(235-24)-(x+2)」を生成します.2行目はevalを用いてこの式を実行し,x=1 jを式に代入し,結果は−9708+3 jであった.x=1 jであることに注意して、この方程式は「-9708+3 x=0」に簡略化され、-(-9708)/3だけでxが得られる.一方,−9708はこの複素数の実部,3はこの複素数の虚部であり,結果として「−c.real/c.imag」となる.従って,この関数は複素方程式を解くことができないことは明らかである.ちなみにPython 2.xの/演算では整数除算が使用され、小数部が失われるため、正しい結果を得るにはPython 3を使用する.x.
この例がPythonの学習に役立つことを願っています.
>>> 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)」を生成します.2行目はevalを用いてこの式を実行し,x=1 jを式に代入し,結果は−9708+3 jであった.x=1 jであることに注意して、この方程式は「-9708+3 x=0」に簡略化され、-(-9708)/3だけでxが得られる.一方,−9708はこの複素数の実部,3はこの複素数の虚部であり,結果として「−c.real/c.imag」となる.従って,この関数は複素方程式を解くことができないことは明らかである.ちなみにPython 2.xの/演算では整数除算が使用され、小数部が失われるため、正しい結果を得るにはPython 3を使用する.x.
この例がPythonの学習に役立つことを願っています.