将字符串输入解析为lambda函数(Python)

时间:2016-11-27 12:25:40

标签: python input lambda type-conversion

如何将字符串输入解析为正确的形式,以便在lambda函数中作为映射规则执行?

 fx=type(input("Enter a polynomial: "))

这是我的输入,我想输入arbirtray多项式。

f= lambda x: fx

现在我希望我的lambda函数能够从输入函数执行字符串,就像它们是普通的映射规则一样,例如x**2

1 个答案:

答案 0 :(得分:2)

首先,>>> fx = input("Enter a polynomial: ") Enter a polynomial: x**2 + 2*x + 1 >>> f = lambda x: eval(fx) >>> f(1) 4 在Python 2和Python 3中的行为有所不同,如this回答中所述。

eval()是最简单的选项之一:

Python 3

>>> fx = raw_input("Enter a polynomial: ")
Enter a polynomial: x**2 + 2*x + 1
>>> f = lambda x: eval(fx)
>>> f(1)
4

Python 2

eval()

但要小心,因为.row可以执行任意代码。