如何将用户定义的函数作为python中的用户输入?

时间:2019-11-23 14:41:09

标签: python python-3.x python-2.7 function user-input

我正在尝试编写一个程序来定义用户定义的函数,并将返回表达式作为用户的输入。 假设一个函数应该返回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())?

2 个答案:

答案 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)

就是这样!