新聞中心
eval()函數(shù)執(zhí)行作為參數(shù)給出的表達(dá)式。表達(dá)式被計(jì)算并解析為有效的 python 語(yǔ)句。表達(dá)式始終是字符串,并且對(duì)于eval()函數(shù)是必需的。

容城ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書(shū)銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書(shū)合作)期待與您的合作!
**eval(expression, globals=None, locals=None)** #Where expression can be a string to evalate
評(píng)估()參數(shù):
取 3 個(gè)參數(shù),其中第一個(gè)參數(shù)是強(qiáng)制的,另外兩個(gè)是可選的。
| 參數(shù) | 描述 | 必需/可選 |
|---|---|---|
| 表情 | 這個(gè)參數(shù)是一個(gè)字符串,它被解析并作為 python 表達(dá)式執(zhí)行 | 需要 |
| 全球 | 這是一本字典。它用于指定可執(zhí)行的表達(dá)式。 | 可選擇的 |
| 本地人 | 它指定eval()中的局部變量和方法 |
可選擇的 |
評(píng)估()返回值
| 投入 | 返回值 | | 表示 | 表達(dá)式的結(jié)果 | | 省略了全局變量和局部變量 | 表達(dá)式在當(dāng)前范圍內(nèi)執(zhí)行 | | 全局存在;本地人被省略了 | 全局變量和局部變量都將使用全局變量 | | 全球和本地都存在 | 根據(jù)參數(shù)的結(jié)果 |
Python 中eval()方法的示例
示例 1:演示eval()的使用
# Perimeter of Square
def calculatePerimeter(l):
return 4 * l
# Area of Square
def calculateArea(l):
return l * l
exp = input("Type a function: ")
for l in range(1, 5):
if exp == "calculatePerimeter(l)":
print("If length is ", l, ", Perimeter = ", eval(exp))
elif exp == "calculateArea(l)":
print("If length is ", l, ", Area = ", eval(exp))
else:
print("Wrong Function")
break
輸出:
Type a function: calculateArea(l)
If length is 1 , Area = 1
If length is 2 , Area = 4
If length is 3 , Area = 9
If length is 4 , Area = 16
示例 2:當(dāng)全局參數(shù)和局部參數(shù)都被省略時(shí),eval()的工作方式。
from math import *
print(eval('dir()'))
輸出:
['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'os', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']
示例 3:將空字典作為全局參數(shù)傳遞
from math import *
print(eval('dir()', {}))
# The code will raise an exception
print(eval('sqrt(25)', {}))
輸出:
['__builtins__']
Traceback (most recent call last):
File "", line 5, in print(eval('sqrt(25)', {}))
File "", line 1, in NameError: name 'sqrt' is not defined
示例 4:使某些方法可用
from math import *
print(eval('dir()', {'sqrt': sqrt, 'pow': pow}))
輸出:
['__builtins__', 'pow', 'sqrt']
示例 5:傳遞全局和局部字典
from math import *
a = 169
print(eval('sqrt(a)', {'__builtins__': None}, {'a': a, 'sqrt': sqrt}))
輸出:
13.0 網(wǎng)站題目:創(chuàng)新互聯(lián)Python教程:Pythoneval()
當(dāng)前網(wǎng)址:http://www.dlmjj.cn/article/dpgohci.html


咨詢
建站咨詢
