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

2024-03-29 09:01:33 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

f= lambda x: fx

现在我希望lambda函数能够执行输入函数中的字符串,就好像它们是像x**2这样的常规映射规则一样。


Tags: lambda函数字符串input规则type常规形式
1条回答
网友
1楼 · 发布于 2024-03-29 09:01:33

首先,input()在Python 2和Python 3中的行为不同,如this应答中所指定的。

^{}是最简单的选项之一:

Python3

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

Python2

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

但是要小心,因为eval()可以执行任意代码。

相关问题 更多 >