Python eval() 函数
描述
eval() 函数用来执行一个字符串表达式,并返回表达式的值。
语法
以下是 eval() 方法的语法:
eval(expression[, globals[, locals]])
参数
- expression -- 表达式。
- globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
- locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。
返回值
返回表达式计算结果。
实例
以下展示了使用 eval() 方法的实例:
>>>x = 7
>>> eval( '3 * x' )
21
>>> eval('pow(2,2)')
4
>>> eval('2 + 2')
4
>>> n=81
>>> eval("n + 4")
85
Python 内置函数
saberbin
win***lieve@163.com
还可以将字符串对应的名字的变量转换成该变量对应的值:
saberbin
win***lieve@163.com
去掉字符串本身的引号
825***608@qq.com
eval 方法能使字符串本身的引号去掉,保留字符的原本属性。
去掉字符串本身的引号
825***608@qq.com
json
wrb***111@163.com
上面笔记中有一句我觉得很在理,eval这个函数就是在返回,它觉得正确的那个值,我这里举两个例子,经验不足,欢迎指正。
>>>str1 = "[{11,22},{22,33},{33,44},{44,55}]" >>>type(str1) <class 'str'> >>>list1 = eval(str1) >>>list1 [{11,22},{22,33},{33,44},{44,55}] >>>type(list) <class 'list'> >>>a = input("请输入:") >>>__import__("os").getcwd() >>>eval(a) C:\Python27 # 输出结果是保存代码的文件夹路径json
wrb***111@163.com
不梦君
411***800@qq.com
eval() 函数也可以直接用来提取用户输入的多个值。
例如:
输入:10,5,得到 a=10,b=5。
不梦君
411***800@qq.com
李明
q68***576@qq.com
eval() 函数可将看起来像列表的字符串重新转换为列表。
例如: 字符串 ['1709020230', '1707030416', '0', '0', '0'] 看起来好像是列表的模样,实际为字符串的字符串还原回列表形态。
例如:
结果是:
这个可以应用在例如,读取一个文本文件中的列表,但是直接读取出来的是字符串格式,这时候可以用 eval() 来将字符串格式的“假列表”转换为真列表。
李明
q68***576@qq.com
aiF
173***3274@qq.com
eval 函数有将字符格式的伪 python 代码转成正常的 python 代码,特别适合于读取 config 文件和获取用户输入格式的转换:
config_args = '[(1,2,3),(4,5,6),(7,8,9)]' # 如果不用 eval 函数的话,将 str 格式转成 python 字面格式需要如下操作 import re config_args = re.findall("\d+",config_args) config_args = list(map(int,img_size)) config_args = [tuple(img_size[i:i+3]) for i in range(0,len(img_size),3)] print(config_args) # 而用来 eval 函数仅仅需要一行代码 config_args = eval(config_args)aiF
173***3274@qq.com