我正在尝试编写一个程序来定义用户定义的函数,并将返回表达式作为用户的输入。 假设一个函数应该返回x + y。在python中我们可以将其设置为---
def f(x,y):
return x+y
但是,我想要类似的东西
a=input("enter the function:")
def f(x,y):
return a
print f(2,3)
如果我输入x + y作为a的输入,它将给出5。如何在Python中完成(没有Sympy或raw_function以及eval())?
答案 0 :(得分:0)
Pyparsing库解析数学表达式。
您可以像这样使用它:
from pyparsing import NumericStringParser
nsp = NumericStringParser()
print(nsp.eval('2+3')) # 5
您必须用数字值替换变量。
如果您真的不想使用外部评估库,可以使用RPN应用程序。
答案 1 :(得分:0)
这实际上很简单。假设您想在x = 2处评估函数
f1=str(input("Enter the test function:"))
def f(x):
return eval(f1)
print f(2)
就是这样!