如何接受函数作为输入?

时间:2018-05-02 17:48:29

标签: python python-3.x function

我正在尝试编写一个接受并评估一个简单函数的程序:

A=[]
v = input("Enter Function of x: "
o = input("Enter length of range: ")

for x in range (1,o+1):
    f = (v)
    A.append(f)

但这只是在列表中返回函数文本(输入字符串)'o'次。我做错了什么?

编辑:感谢@tdelaney的回答:使用f = eval(v)

1 个答案:

答案 0 :(得分:2)

v只是一个字符串。在它周围抛出括号使它成为一个元素的元组 - 相同的字符串。你没有做任何事情把它变成一个函数 - 这在任何编程语言中都是微不足道的,因为你试图将新代码注入已经解析过的程序中。

Python提供eval函数来执行此操作。但请注意,eval非常强大且危险。

my_func = "x*x + 2*x - 3"
limit = 5
y_vals = []

for x in range (1,limit+1):
    y_vals.append(eval(my_func))

print(y_vals)

输出:

[0, 5, 12, 21, 32]