假设我有一个功能:
def func(t):
a=5;b=-7;c=4;d=2
return a*t**3+b*t**2+c*t+d
除了返回该函数的值外,我还试图从字面上获取该函数,因为调用该函数时,我会得到:
a*t**3 +b*t**2+c*t +d = <actual mathematical value>
我的最终目标是使它作为LaTeX
表达式正确,以便在matplotlib
中编写该语句。
有帮助吗?
更新亲爱的所有人,谢谢您的答复。但正如您所展示的,我只是不想再次编写该函数,就像这样:
return "a*t**3+b*t**2+c*t+d = " + str(a*t**3+b*t**2+c*t+d)
(我可以更方便地直接在plt.txt
中这样做,对吧?)
我只想转换原样复制的函数:
def func(t):
a=.05;b=-.07;c=.04;d=.02
return a*t**3+b*t**2+c*t+d
def strf():
# return(r"$a*t**3+b*t**2+c*t+d$")
return (str(func))
# expecting this to give the output
# r"$a*t**3+b*t**2+c*t+d$"
答案 0 :(得分:0)
这是你的意思吗?
def func(t):
a = 5
b = -7
c = 4
d = 2
return "a*t**3+b*t**2+c*t+d = " + str(a*t**3+b*t**2+c*t+d)
答案 1 :(得分:0)
def func(t):
a = 5
b = -7
c = 4
d = 2
exp = "a*t**3+b*t**2+c*t+d"
return f"{exp} = {eval(exp)}"
我想是这样
答案 2 :(得分:0)
您可以使用f字符串:
def func(t):
a = 5
b = -7
c = 4
d = 2
result = a * t**3 + b * t**2 + c * t + d
return result, f'a * t**3 + b * t**2 + c * t + d = {result}'
res, str_ = func(5)
print(res)
print(str_)
输出:
472
a * t**3 + b * t**2 + c * t + d = 472
我不建议您像其他解决方案一样使用功能eval()
。