1、eval函数定义:用来执行一个字符串表达式,并返回表达式的值,也就是说,可以将字符串转换成python对象。
2、语法
eval(expression[, globals[, locals]])
expression : 表达式。
globals : 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
locals : 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。
3、实例
执行字符串内的代码
>>> eval('2*4')
8
>>> eval('pow(2,2)') # 求次方的函数
4
>>> eval('2+5')
7
>>>
字符串转成列表
>>> l1="[1,2,3,4,5]"
>>> type(l1)
<class 'str'>
>>> l2=eval(l1)
>>> type(l2)
<class 'list'>
>>>
字符串转成字典
>>> d1={'name':'bright','age':12}
>>> d1="{'name':'bright','age':12}"
>>> type(d1)
<class 'str'>
>>> d2=eval(d1)
>>> type(d2)
<class 'dict'>
>>> d2
{'age': 12, 'name': 'bright'}
>>>
字符串转成元祖
>>> t1="(1,2,3,4)"
>>> type(t1)
<class 'str'>
>>> t2=eval(t1)
>>> type(t2)
<class 'tuple'>
>>>
2.exec函数
函数的作用:
动态执行python代码。也就是说exec可以执行复杂的python代码,而不像eval函数那样只能计算一个表达式的值。
exec(source, globals=None, locals=None, /)
source:必选参数,表示需要被指定的python代码。它必须是字符串或code对象。如果source是一个字符串,该字符串会先被解析为一组python语句,然后执行。如果source是一个code对象,那么它只是被简单的执行。
返回值:
exec函数的返回值永远为None。
eval()函数和exec()函数的区别:
eval()函数只能计算单个表达式的值,而exec()函数可以动态运行代码段。
eval()函数可以有返回值,而exec()函数返回值永远为None。