Python eval() 函数

  • 描述
    eval() 函数用来执行一个字符串表达式,并返回表达式的值。

  • 语法
    以下是 eval() 方法的语法:
    eval(expression[, globals[, locals]])

参数
expression -- 表达式。
globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。

  • 返回值
    返回表达式计算结果。

实例

>>>x = 7
>>> eval( '3 * x' )
21
>>> eval('pow(2,2)')
4
>>> eval('2 + 2')
4
>>> n=81
>>> eval("n + 4")
85

其他用法

将字符串对应的名字的变量转换成该变量对应的值

>>> x='7'
>>> x
'7'
>>> a=eval(x)
>>> a
7
>>> b='a'     # 等价于b='7'
>>> c=eval(b)
>>> c
7
>>>

eval 方法能使字符串本身的引号去掉,保留字符的原本属性

>>> a = "123"
>>> type(a)
<class 'str'>
>>> b = eval(a)
>>> b
123
>>> type(b)
<class 'int'>
>>>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:\Python37  # 输出结果是保存代码的文件夹路径

eval() 函数也可以直接用来提取用户输入的多个值

a,b=eval(input())
输入:10,5 得到的结果是:a=10,b=5

eval() 函数可将看起来像列表的字符串重新转换为列表

例如: 字符串 ['1709020230', '1707030416', '0', '0', '0'] 看起来好像是列表的模样,实际为字符串的字符串还原回列表形态。

# 示例
zifu="['1709020230', '1707030416', '0', '0', '0']"
print(type(zifu))
ls=eval(zifu)
print(type(ls))
# 结果
<class 'str'>
<class 'list'>

这个可以应用在例如,读取一个文本文件中的列表,但是直接读取出来的是字符串格式,这时候可以用 eval() 来将字符串格式的“假列表”转换为真列表。

posted @ 2020-08-10 11:15  哈喽哈喽111111  阅读(868)  评论(0编辑  收藏  举报