Как решить простое уравнение Python

Пишу систему ГДЗ. Нужно, чтобы пользователь ввёл уравнение (с 1 неизвестным x), а программа вывела решение и ответ. Пытался делать через срезы, но это очень долго.

Примеры:

1)Ввод:

x+226=300

Вывод:

x=300-226
x=74

2)Ввод:

x+22-(33+44)=0

Вывод:

x+22-77=0
x+22=0+77
x+22=77
x=77-22
x=55

Ответы (1 шт):

Автор решения: MaxU

Если нужен только результат, т.е. найти значение переменной x, но не показывать шаги решения, то это легко делается при помощи модуля SymPy:

from sympy import symbols, solve, parse_expr, simplify
from sympy.parsing.sympy_parser import standard_transformations, implicit_multiplication_application

transformations = (standard_transformations + (implicit_multiplication_application,))

formula = "x(4x+22)-(3x+44)^2=0"

def map_operations(formula_str):
    return formula_str.replace("^", "**").replace("=", "-")

f = parse_expr(map_operations(formula), transformations=transformations)
roots = solve(f) # <-- вернуть все корни уравнения в виде списка
print(roots)

вывод:

[-121/5 - 11*sqrt(41)/5, -121/5 + 11*sqrt(41)/5]

также модуль SymPy умеет аналитически упрощать выражения:

In [7]: simplify(f)
Out[7]: -5*x**2 - 242*x - 1936

In [8]: simplify(parse_expr("(x-1) * (x+1)"))
Out[8]: x**2 - 1
→ Ссылка