tip*_*ipu 6 python math algebra
我正在尝试将计算器输入转换为LaTeX.如果用户输入:
(3x^(x+(5/x)+(x/33))+y)/(32 + 5)
Run Code Online (Sandbox Code Playgroud)
我必须把它转换成这个:
frac{3x^(x+frac{5}{x}+frac{x}{33})+y}{32 + 5x}
Run Code Online (Sandbox Code Playgroud)
但是我在确定分子何时开始和结束时遇到问题.有什么建议?
看看编译器
compiler.parse('(3*x**(x+(5/x)+(x/33))+y)/(32 + 5)')
Run Code Online (Sandbox Code Playgroud)
回报
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))))))]))
Run Code Online (Sandbox Code Playgroud)
这可以更容易地转换为LaTeX代码.您将不得不编写方法,以递归方式处理每个代码(Div,Add,Const,Name,Power,...)及其参数,并返回适当的LateX代码.