Нахождение коэффициентов x в строке - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь решить алгебру, поэтому мне нужно найти коэффициенты x в выражении. В настоящее время это код, который я должен принять:

equation = input("Enter equation: ")
LHS, RHS = equation.split("=")[0], equation.split("=")[1]

##Remove whitespaces
LHS, RHS = LHS.replace(" ",""), RHS.replace(" ","")

Теперь я хочу получить коэффициенты х в выражениях LHS и RHS, как я могу это сделать? Кроме того, коэффициенты могут быть не просто числами, но они могут иметь форму (2 * 3 + 4) x. Я думаю, что это можно сделать с помощью функции eval (), но я не знаю, как ее применить.

Примечание: я хочу сделать это с простым python, без использования каких-либо модулей, которые не были собраны -в.

1 Ответ

0 голосов
/ 19 апреля 2020

В случае, если это только одна переменная и, следовательно, только один коэффициент, вы можете разделить соответствующую переменную / сайт на x. Принимая ваш пример:

(2 * 3 + 4) x

деление на x дает нам коэффициент:

(2 * 3.4)

Если вы не хотите использовать этот подход, вы можете также преобразовать выражение в строку и исключить «x», например:

coefficientLHS = LHS.replace("x", "")

Однако Вы должны использовать это осторожно, так как у вас могут быть выражения алгебры перед вашей переменной, поэтому рекомендуется применять регулярные выражения.

Другой подход заключается в использовании модуля Poly:

x = symbols("x")
coefLHS = Poly(LHS, x)
coefLHS.coeffs()
...