繁体   English   中英

如何接受函数作为输入?

[英]How do I accept a function as an input?

我正在尝试编写一个程序来接受和评估一个简单的函数,例如:

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)

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]

暂无
暂无

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

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