繁体   English   中英

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

[英]How to take a user defined function as user input in python?

我正在尝试编写一个程序来定义用户定义的函数,并将返回表达式作为用户的输入。 假设一个函数应该返回 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.How can be done in Python(没有 Sympy 或 raw_function 以及 eval())?

Pyparsing库解析数学表达式。

例如,您可以像这样使用它:

from pyparsing import NumericStringParser

nsp = NumericStringParser()
print(nsp.eval('2+3')) # 5

您必须用数值​​替换变量。


如果您真的不想使用外部 eval 库, RPN的应用程序可能是一个解决方案。

这实际上很容易。假设你想在 x=2 处评估函数

f1=str(input("Enter the test function:"))
def f(x):
    return eval(f1)
print f(2)

就是这样!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM