DIEA
您可以手工制作基本的代数:(balancer * N) + A = Z(balancer * N) = Z - A # subtract A from both sidesbalancer = (Z - A) / N # divide both sides by N…然后将其转换为代码很简单-最后一行实际上是有效的Python代码,没有任何更改。或者,如果您希望Python为您做到这一点,只需指定(balancer * N) + A = Z一个方程式即可……Python并没有内置任何东西可以做,但是有像SymPy这样的代数库可以做。您将真的要完成整个教程,但要简短……首先,您必须首先告诉您变量是变量:>>> from sympy import symbols, solve, Eq>>> A, N, Z, balancer = symbols('A N Z balancer')然后,建立一个方程式。左侧可以是(balancer * N) + a和Z,但不能只在它们之间放置=或==。您必须使用Eq:>>> equation = Eq((balancer * N) + A, Z) 现在,您可以用值代替变量:>>> equation.subs(dict(N=2, A=2, Z=6))Eq(2*balancer + 2, 6)最后,解决有效的解决方案:>>> solve(equation.subs(dict(N=2, A=2, Z=6))[2]或者,如果您希望通过代数求解,然后用替代的方法代替,而不是相反的方法:>>> solve(equation, 'balancer')[(-A + Z)/N]>>> [s.subs(dict(N=2, A=2, Z=6)) for s in solve(equation, 'balancer')][2]