Python 求字符串中x的系数
我想做一个代数解算器,所以我必须在表达式中找到x的系数。目前这是我必须输入的代码:Python 求字符串中x的系数,python,string-parsing,algebra,Python,String Parsing,Algebra,我想做一个代数解算器,所以我必须在表达式中找到x的系数。目前这是我必须输入的代码: equation = input("Enter equation: ") LHS, RHS = equation.split("=")[0], equation.split("=")[1] ##Remove whitespaces LHS, RHS = LHS.replace(" ",""), RHS.replace(" ","") 现在我想得到表达式LHS和RHS中x的系数,我该怎么做呢? 而且,系数可以不
equation = input("Enter equation: ")
LHS, RHS = equation.split("=")[0], equation.split("=")[1]
##Remove whitespaces
LHS, RHS = LHS.replace(" ",""), RHS.replace(" ","")
现在我想得到表达式LHS和RHS中x的系数,我该怎么做呢?
而且,系数可以不仅仅是数字,还可以是(2*3+4)x的形式。我认为这可以使用eval()函数来完成,但我不知道如何应用它
注意:我想用普通python实现这一点,而不使用任何非内置模块。如果只有一个变量,因此只有一个系数,则可以将相应的变量/站点除以x。 以你为例: (2*3+4)x 除以x得到系数: (2*3.4) 如果您不想采用这种方法,还可以将表达式转换为字符串并排除“x”,如下所示:
coefficientLHS = LHS.replace("x", "")
但是,您应该谨慎使用此选项,因为变量前面可能有代数表达式,所以建议使用正则表达式实现
另一种方法是使用模块Poly
:
x = symbols("x")
coefLHS = Poly(LHS, x)
coefLHS.coeffs()
你能举一个有效输入和预期输出的例子吗?@Thaer a如果输入是“2-(2+4*5)x+3x”,那么输出将是[“2-(2+4*5)”,“3”]或任何其他包含系数的变量。是的,x前面会有代数表达式,因此这种方法在没有额外处理的情况下无法工作。使用模块Poly如何?我编辑我的解决方案,查看它。:)