python - 使用python确定相对复杂的数学表达式中的分子和分母

标签 python math algebra

我正在尝试将计算器输入转换为 LaTeX。如果用户输入:

(3x^(x+(5/x)+(x/33))+y)/(32 + 5)

我必须把它转换成这样:

frac{3x^(x+frac{5}{x}+frac{x}{33})+y}{32 + 5x}

但是我在确定分子何时开始和结束时遇到了问题。有什么建议吗?

最佳答案

看看compiler

compiler.parse('(3*x**(x+(5/x)+(x/33))+y)/(32 + 5)')

返回

Module(None, Stmt([Discard(Div((Add((Mul((Const(3), Power((Name('x'), Add((Add((Name('x'), Div((Const(5), Name('x'))))), Div((Name('x'), Const(33))))))))), Name('y'))), Add((Const(32), Const(5))))))]))

可以更容易地转换为 LaTeX 代码。您将必须编写方法,以递归方式处理每个代码(Div、Add、Const、Name、Power 等)及其参数,并返回适当的 LateX 代码。

关于python - 使用python确定相对复杂的数学表达式中的分子和分母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4942657/

相关文章:

python - Django Tastypie 记录级授权

math - float 学有问题吗?

algorithm - 是否有确定最小可解线性方程组的算法

algorithm - 正多边形的高效打包算法

sql - 关系代数

Python 交互式轴范围 - 在 pylab/numpy 中使用 silders 设置轴限制

python - Python 有 C#/Java 风格的接口(interface)吗?

c - 抽象语法树的代数化简

python - 如何有效地从稀疏矩阵中删除列?

python django 模拟缓存