我正在寻找一种将一系列公式/方程式存储为文本的方法(因此它们很容易区分)。后来的公式取决于早期公式的结果。
我应该能够将公式(类似于MathCAD中的实时工作表)评估为数值结果,但也能够以编程方式生成原始公式的字符串表示。
换句话说,我希望能够将公式本身视为数据,并评估公式。
我希望在编辑公式时有一个带语法高亮的文本编辑器。
我的第一种方法是使用存储为字符串的公式的Python文件,然后在字符串上调用eval()
。但是,这不允许语法高亮显示公式。
我选择的语言是Python,但我会接受其他非专有解决方案。
示例:
a = 73
b = 13
c = 100
d = 20
e = 18
x = a^2 + b / (c - min(d, e))
y = c + sqrt(x * e)
目的是使用公式的评估结果自动生成其他代码,同时使用原始公式本身评论生成的代码。
答案 0 :(得分:4)
你可以使用sympy:
from sympy import *
a,b,c,d,e = symbols("a,b,c,d,e")
x = a**2 + b/(c-min(d,e))
y = c+sqrt(x*e)
values = {a:73,b:13,c:100,d:20,e:18}
print x
print y
print x.subs(values)
print y.subs(values)
print N(x.subs(values))
print N(y.subs(values))
输出是:
a**2 + b/(c - d)
c + (e*(a**2 + b/(c - d)))**(1/2)
426333/80
100 + 3*4263330**(1/2)/20
5329.16250000000
409.717492240913