Python 用户输入一个函数

Python 用户输入一个函数,python,function,input,Python,Function,Input,我正在编写一个程序,其中包括计算用户定义函数的最大值,但是如果用户输入一个变量,比如x,即 input = x**2 + 2*x + 1 我(相当期待)得到一个错误,因为x没有定义 有没有人知道一种有效的方法,可以让用户用单个变量(如x)输入函数?如果您不太担心安全性,最简单的解决方案是计算表达式,例如 def calculate(value, function): x = value return eval(function) print calculate(2, "x**

我正在编写一个程序,其中包括计算用户定义函数的最大值,但是如果用户输入一个变量,比如x,即

input = x**2 + 2*x + 1
我(相当期待)得到一个错误,因为x没有定义


有没有人知道一种有效的方法,可以让用户用单个变量(如x)输入函数?

如果您不太担心安全性,最简单的解决方案是
计算表达式,例如

def calculate(value, function):
    x = value
    return eval(function)

print calculate(2, "x**2 + 2*x + 1")
print calculate(2, "x**3 - x**2 + 1")
输出:

9
5

你可以通过传递一个空的
内建的
dict使它更安全,但我仍然认为一些聪明的代码可以访问你代码的内部。

看这里:int(原始输入(“请输入x”)),然后如果你使用
int(原始输入(…),用户可以输入一个值
strategy@bpgergo建议。@Jon是的,可以通过多种方式从用户处获取
x
值和
函数
字符串,例如从gui或命令行或API。我唯一可以添加的是,使用@ArtsiomRudzenka可能会更好谢谢我可以编辑它,但我不认为它会计算这些表达式