所以,我的代码是这样的:
def func(s,x):
return eval(s.replace('x',x)
#Example:
>> func('x**2 + 3*x',1)
4
函数的第一个参数func
必须是字符串,因为该函数eval
只接受字符串或代码对象。但是,我想在一种计算器中使用此功能,例如,用户在其中键入2 + sin(2*pi-0.15) + func(1.8*x-32,273)
并获得表达式的答案,而且总是不得不在表达式内部写上引号,这很烦人func()
。
有没有办法让python理解s
参数总是一个字符串,即使它不在引号之间?