Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于字符串输入展开并简化表达式_Python_Python 3.x_Parsing_Math_Sympy - Fatal编程技术网

Python 基于字符串输入展开并简化表达式

Python 基于字符串输入展开并简化表达式,python,python-3.x,parsing,math,sympy,Python,Python 3.x,Parsing,Math,Sympy,我有一个纯文本输入,如“2(5x+4)+3(2x-1)”,我需要扩展和简化它。似乎symphy要求将其作为由python类型组成的python对象输入。有没有一种方法可以自动解析它/一个不需要它的库,这样我就可以给它一个字符串,它以人类可读的格式给我答案?您想使用函数,对于您的表达式,它将是这样的: sympify('2*(5*x+4) + 3*(2*x-1)') Symphy已经在symphy.parsing.symphy\u parser.parse\u expr下内置了这样一个解析器。要

我有一个纯文本输入,如
“2(5x+4)+3(2x-1)”
,我需要扩展和简化它。似乎
symphy
要求将其作为由python类型组成的python对象输入。有没有一种方法可以自动解析它/一个不需要它的库,这样我就可以给它一个字符串,它以人类可读的格式给我答案?

您想使用函数,对于您的表达式,它将是这样的:

sympify('2*(5*x+4) + 3*(2*x-1)')

Symphy已经在
symphy.parsing.symphy\u parser.parse\u expr
下内置了这样一个解析器。要获得输入语句所需的结果,还必须添加
隐式乘法
转换(因为sympy否则不会生成对
2(
5x
有意义的语句):

from sympy.parsing.sympy_parser import (
    parse_expr,
    standard_transformations, 
    implicit_multiplication,
)
parse_expr("2(5x+4) + 3(2x-1)", transformations=standard_transformations + (implicit_multiplication,))