美文网首页
Python eval()函数详解

Python eval()函数详解

作者: 香菜那么好吃为什么不吃香菜 | 来源:发表于2021-04-30 10:58 被阅读0次

1描述

eval()是Python的一个内置函数,用来执行一个字符串表达式,并返回表达式的值。即:将字符串作为有效表达式进行求值并返回计算结果
eval()函数还能实现将字符串str转化为列表List、元组tuple、字典ditc的功能,这与str()函数功能刚好互补(str()函数能够将list\tuple\ditc转化为字符串str)

2语法

eval(expression[, globals[, locals]])

3参数

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

3返回值

表达式的计算结果.

4使用

示例代码:


#1.eval无参实现字符串转化
s = '1+2+3*5-2'
print(eval(s))  #16
 
#2.字符串中有变量也可以
x = 1
print(eval('x+2'))  #3
 
#3.字符串转字典
print(eval("{'name':'linux','age':18}"))
#输出结果:{'name':'linux','age':18}
 
#4.eval传递全局变量参数,注意字典里的:age中的age没有带引号,说明它是个变量,而不是字符串。
#这里两个参数都是全局的
print(eval("{'name':'linux','age':age}",{"age":1822}))
#输出结果:{'name': 'linux', 'age': 1822}
print(eval("{'name':'linux','age':age}",{"age":1822},{"age":1823}))
#输出结果:{'name': 'linux', 'age': 1823}
 
#eval传递本地变量,既有global和local时,变量值先从local中查找。
age=18
print(eval("{'name':'linux','age':age}",{"age":1822},locals()))
#输出结果:{'name': 'linux', 'age': 18}
print("-----------------")
 
print(eval("{'name':'linux','age':age}"))

eval()通常还与input()函数联合使用,来将用户输入的字符串转化为标准形式。

#使用eval直接完成了表达式的还原与计算:
s = input("输入一个表达式")
输入一个表达式:1+3+4+4*3
>>> print(eval(s))
20

#使用eval可以直接将用户输入的字符串转化为字典
s = input("输入一个字典形式的字符串")
输入一个字典形式的字符串:{'name':'linux','age':18}
>>> print(eval(s))
#输出结果:{'name':'linux','age':18}

4使用风险

eval虽然方便,但是要注意安全性,。eval(input())可以将用户输入的字符串转成表达式并执行,用户就可以利用此函数执行系统命令,删除文件等操作。比如用户恶意输入就会获得当前目录文件


>>>eval("__import__('os').system('dir')")
 驱动器 C 中的卷是 OS
 卷的序列号是 B234-8A38
 ...

相关文章

  • 08.eval、exec和其他函数

    eval、exec和其他函数 一、eval函数 1). eval函数的功能 将字符串形式的变量转换成Python的...

  • Python语法之eval()函数

    eval()函数 python中的eval()函数就是实现list、dict、tuple与str之间的转化;str...

  • Python函数-eval()

    eval(source[, globals[, locals]]) 作用:将字符串str当成有效的表达式来求值并返...

  • Python eval 函数

    Python eval 函数学习与总结。 基本用法 简介 eval() 函数用来执行一个字符串表达式,并返回表达式...

  • python eval 函数

    eval 函数 eval() 函数十分强大 —— 将字符串 当成 有效的表达式 来求值 并 返回计算结果 案例 -...

  • python中eval函数的用法详解

    可以把list,tuple,dict和string相互转化。 1、字符串转换成列表 >>>a = "[[1,2],...

  • Python文章集合

    函数的学习 Python eval函数的学习 环境搭建 Python dlib的安装 库的学习 知识点整理 Ana...

  • eval

    eval() 将去掉字符串最外侧的引号,并按照Python语句方式执行去掉引号后的字符内容 eval() 函数经常...

  • python-eval函数

    [toc] 一、基本用法 eval 最直接的作用就是把字符串当成有效的表达式来求值并返回计算结果。如下: pyth...

  • Python内置函数eval()

    eval(expression, globals=None, locals=None) 动态执行一个表达式的字符串...

网友评论

      本文标题:Python eval()函数详解

      本文链接:https://www.haomeiwen.com/subject/sjvirltx.html