如何将字符串转换为Sympy表达式且不进行自动化简?
如何在SymPy中保留表达式的原始结构(不自动化简)
要保留"c+1+1"这类字符串转换为SymPy表达式时的原始结构,避免自动合并常数项,你可以使用SymPy的parse_expr函数,并设置evaluate=False参数——这个参数正是用来关闭自动求值/化简逻辑的。
默认情况下,sympify和kernS都会自动执行表达式化简操作,所以它们会把1+1合并成2。而parse_expr的evaluate参数能让你灵活控制这一行为:
from sympy import parse_expr # 转换时关闭自动化简 expr = parse_expr("c+1+1", evaluate=False) print(expr) # 输出: c + 1 + 1
如果之后你需要对这个表达式进行化简,也可以手动调用SymPy的化简函数,比如:
from sympy import simplify simplified_expr = simplify(expr) print(simplified_expr) # 输出: c + 2
这样既满足了保留原始结构的需求,也能在需要时随时进行化简操作。
内容的提问来源于stack exchange,提问作者Pro Q
相关产品推荐
相关产品推荐

