Python eval() 函数



Python 的eval()函数是一个内置函数,用于将字符串评估为 Python 表达式并返回结果。它接收包含有效 Python 表达式的字符串作为输入,对其进行解析并执行代码,最终返回表达式的结果。

语法

以下是 Python eval() 函数的语法:

eval(expression, globals=None, locals=None)

参数

此函数的参数如下所示:

  • expression − 它是一个字符串,表示要评估的有效 Python 表达式。

  • globals (可选) − 它是一个包含全局变量的字典。如果未提供或设置为 None,则使用调用者的全局命名空间。

  • locals (可选) − 它是一个包含局部变量的字典。如果未提供或设置为 None,则使用调用者的局部命名空间。

返回值

此函数返回已评估表达式的结果。

示例 1

在下面的示例中,我们使用 eval() 函数来评估简单的表达式 "2 + 3",它表示简单的加法:

expression = "2 + 3"
result = eval(expression)
print('The evaluated expression obtained is:',result)

输出

以上代码的输出如下:

The evaluated expression obtained is: 5

示例 2

在这里,我们使用 eval() 函数计算二次方程 "x2 + 3x + 5" 在 "x" 设置为 "2" 时的结果:

formula = "x**2 + 3*x + 5"
x_value = 2
result = eval(formula, {'x': x_value})
print('The evaluated expression obtained is:',result)

输出

以上代码的输出如下:

The evaluated expression obtained is: 15

示例 3

我们可以使用 eval() 函数访问全局变量和局部变量。

在这里,我们使用 eval() 函数计算 "global_var" 和 "local_var" 的和:

global_var = 10
local_var = 5
expression = "global_var + local_var"
result = eval(expression, {'global_var': global_var}, {'local_var': local_var})
print('The evaluated expression obtained is:',result)

输出

获得的结果如下所示:

The evaluated expression obtained is: 15

示例 4

在这种情况下,我们使用列表推导式来生成 0 到 4 范围内数字的平方列表。之后,我们使用 eval() 函数评估表达式以获得结果:

list_expression = "[x**2 for x in range(5)]"
result = eval(list_expression)
print('The evaluated expression obtained is:',result)

输出

以上代码的输出如下:

The evaluated expression obtained is: [0, 1, 4, 9, 16]

示例 5

在这个例子中,我们定义了一个名为 "custom_function" 的函数,它接收参数 'x' 并计算二次表达式。然后我们创建一个名为 "expression" 的字符串变量,其中包含带有参数 '3' 的函数调用。为了评估表达式,我们使用 eval() 函数,将函数及其参数提供给 globals() 字典(包括全局变量),以及包含自定义函数的字典:

def custom_function(x):
   return x**2 + 2*x + 1
expression = "custom_function(3)"
result = eval(expression, globals(), {'custom_function': custom_function})
print('The evaluated expression obtained is:',result)

输出

产生的结果如下:

The evaluated expression obtained is: 16
python_type_casting.htm
广告