я хочу вставить два равных между тремя объектами в python, используя sympy

#python #python-3.x #sympy

#python #python-3.x #sympy

Вопрос:

это код, который может вставить равенство между двумя объектами:

 import sympy as sp
from sympy import pprint
y =sp.Symbol('y')
x=sp.Eq((((y**2 2)*(y**3))/5) 3,3*(y**2))
pprint(x,use_unicode=True)
 

это результат:

  32    ⎞           
y ⋅⎝y    22
───────────   3 = 3⋅y 
     5            
 

но если я хочу добавить еще одно равное, используя другой sp.Eq, подобный этому:

 import sympy as sp
from sympy import pprint
y =sp.Symbol('y')
x=sp.Eq(sp.Eq((((y**2 2)*(y**3))/5) 3,3*(y**2)),0)
pprint(x,use_unicode=True)
 

результат:

 False
 

Комментарии:

1. Пожалуйста, объясните, чего вы пытаетесь достичь?

2. Я пытаюсь поместить три = в функцию типа a = b = c, я могу сделать только a = b, но я не могу поместить три =

3. Я могу понять это из вашего вопроса, но мой вопрос заключается в том, «почему» вы хотите поместить два = в функцию? Это потому, что вы надеетесь решить уравнения (и в этом случае, хотя очевидно, что y = 0 является решением для b = c, менее очевидно, что есть решение для a = c (= 0) и, конечно, не с y = 0, поэтому ваше ‘равенство’ кажется невозможным)?

4. Я хочу решить правило с более чем шагом, поэтому я хочу сделать больше, чем =, потому что тогда я хочу попытаться записать его в файл docx

5. @MagdyRafeet вы пытаетесь решить систему уравнений, подобную этой ?

Ответ №1:

Вы можете использовать evaluate=False :

 In [7]: Eq(Eq(3, 4, evaluate=False), 2, evaluate=False)
Out[7]: 3 = 4 = 2