Python 用户输入一个函数
我正在编写一个程序,其中包括计算用户定义函数的最大值,但是如果用户输入一个变量,比如x,即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**
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可能会更好谢谢我可以编辑它,但我不认为它会计算这些表达式