Chr*_*ger 0 python lambda input type-conversion
如何将字符串输入解析为适当的形式,以使其在lambda函数中作为映射规则执行?
fx=type(input("Enter a polynomial: "))
Run Code Online (Sandbox Code Playgroud)
这是我的输入,我想输入arbirtray多项式。
f= lambda x: fx
Run Code Online (Sandbox Code Playgroud)
现在,我希望我的lambda函数能够执行输入函数中的字符串,就像它们是正常的映射规则一样x**2。
首先input(),如该答案所述,在Python 2和Python 3中的行为有所不同。
eval() 是最简单的选项之一:
>>> fx = input("Enter a polynomial: ")
Enter a polynomial: x**2 + 2*x + 1
>>> f = lambda x: eval(fx)
>>> f(1)
4
Run Code Online (Sandbox Code Playgroud)
>>> fx = raw_input("Enter a polynomial: ")
Enter a polynomial: x**2 + 2*x + 1
>>> f = lambda x: eval(fx)
>>> f(1)
4
Run Code Online (Sandbox Code Playgroud)
但是要小心,因为eval()可以执行任意代码。
| 归档时间: |
|
| 查看次数: |
5499 次 |
| 最近记录: |