我正在尝试编写一个接受并评估一个简单函数的程序:
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)
答案 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]