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
廣告