この記事で説明されている例では、Python の 3 行のコードを使用して 1 つの変数の線形方程式を解きます。コードはシンプルで効率的です。
>>> 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
以下のコードを解釈してみましょう。
最初は 1 行目で、方程式を変形して「x - 2*x + 5*x - 46*(235-24) -( x + 2)」という計算式を生成し、結果は 0 になります。 。
2 行目では、eval を使用してこの計算を実行し、計算に x = 1j を代入します。結果は -9708+3j になります。
x = 1j であるため、この方程式は「-9708+3x = 0」に単純化され、x を得るには -(-9708) / 3 を加算するだけであることに注意してください。
そして、-9708 はこの複素数の実数部、3 はこの複素数の虚数部であるため、結果は「-c.real/c.imag」になります。
したがって、この関数が複雑な方程式を解くことができないことは明らかです。
ちなみに、Python 2.x の / 演算は整数の除算を使用するため、小数部分が失われるため、正しい結果を得るには Python 3.x を使用する必要があります。
この記事で説明した例が、Python を学習するすべての人にとって役立つことを願っています。