如何将字符串输入解析为正确的形式,以便在lambda函数中作为映射规则执行?
fx=type(input("Enter a polynomial: "))
这是我的输入,我想输入arbirtray多项式。
f= lambda x: fx
现在我希望我的lambda函数能够从输入函数执行字符串,就像它们是普通的映射规则一样,例如x**2
。
答案 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()
是最简单的选项之一:
>>> fx = raw_input("Enter a polynomial: ")
Enter a polynomial: x**2 + 2*x + 1
>>> f = lambda x: eval(fx)
>>> f(1)
4
eval()
但要小心,因为.row
可以执行任意代码。