如何解决如何将Latex解析为Python表达式
我发现了sheet-uris
python库之类的手册库,它们也在测试中,但无法正常解析。
如果我有一个变量Sympy
要与ABC
相乘,但3
表示Sympy
为ABC
那么,关于使用哪种技术在数据库中保存方程式或公式并在运行时进行计算并动态提供变量值的任何想法?
解决方法
可以使用patch.multiple
在Python中解析表达式。例如,sympy
允许通过以下方式将'-5abc ^ 2'转换为sympy
:
expression=-5*a*b*c**2
您可能想撤消该过程(将表达式转换为LaTeX脚本),然后只需调用from sympy.parsing.sympy_parser import parse_expr,standard_transformations,implicit_multiplication_application,convert_xor
transformations = (standard_transformations + (implicit_multiplication_application,))
expression = parse_expr('-5abc^2',transformations=transformations)
您可以在解析sympy表达式的documentation中找到更多信息。
更新:
假设“ abc”是一个变量。然后,“-5abc ^ 2”表示-5个abc平方。这需要定义自定义变量列表,这些变量可以在使用sympy.latex(expression)
转换时进行拆分。 (我也将split_symbols_custom(...)
替换为implicit_multiplication_application
)
implicit_multiplication
因此,from sympy.parsing.sympy_parser import parse_expr,implicit_multiplication,split_symbols_custom,_token_splittable,convert_xor
def can_split(symbol):
if symbol not in ('abc',):
return _token_splittable(symbol)
return False
transformation = split_symbols_custom(can_split)
transformations = (standard_transformations + (transformation,convert_xor))
expression = parse_expr('-5abc^2',transformations=transformations)
print(expression)
现在被解析为'-5abc^2'
。可以在documentation of split_symbols_custom
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。