一、eval()函数是什么?

Python的一个内置函数;
返回传入字符串的表达式结果(官方)

二、eval()函数语法解析

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

三、eval()函数应用举例

3.1 eval()基本应用举例

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
print(eval('66+72')) # 把字符串解析成66+72的结果
print( eval("{'name':'linux','age':18}") ) # 把字符串转为字典
print( eval("[[1,2], [3,4], [5,6], [7,8], [9,0]]") ) # 把字符串转为列表
print(eval("{'name':'linux','age':age}",{"age":18})) # 传递globals参数值为{“age”:18}age=18
print(eval("{'name':'linux','age':age}",{"age":20},locals())) # 传递locals参数

上述例子中,展示了eval()的3个应用:

  • 把字符串转化为代码表达式求结果,如 66+72
  • 把字符串转化为其它数据类型,如字典、列表、元组、集合等
  • 传递globals参数和locals参数,当两个参数都存在时,先查找locals参数,再查找globals参数,locals参数中同名变量会覆盖globals中的变量

3.2 eval()危害举例

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
str1 = "__import__('os').system('rm -rf ./a.txt')"  # 删除当前目录下的a.txt文件
eval( str1 )
str2 = "__import__('os').system('ls')" # 显示当前代码路径下的所有代码文件名称
eval( str2 )

上述例子中,eval()将字符串转成表达式并执行,就可以利用其执行系统命令,删除文件等操作。

3.3 ast.literal_eval()替代eval()实现数据类型转换

import astprint( ast.literal_eval("{'name':'linux','age':18}") )
print( ast.literal_eval("[[1,2], [3,4], [5,6], [7,8], [9,0]]") )

上述代码也能完成类型转换,但由于没有使用eval(),所以产生的安全风险较小。
literal_eval() 函数:会判断需要计算的内容计算后是不是合法的python类型,如果是则进行运算,否则就不进行运算。

python eval()函数使用相关推荐

  1. python eval 入门_Python学习笔记整理3之输入输出、python eval函数

    Python学习笔记整理3之输入输出.python eval函数 来源:中文源码网    浏览: 次    日期:2018年9月2日 Python学习笔记整理3之输入输出.python eval函数 ...

  2. Python eval 函数 - Python零基础入门教程

    目录 一.前言 二.Python eval 函数简介 三.Python eval 函数实战 四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python ...

  3. Python eval 函数 -Python零基础入门教程

    目录 一.前言 二.Python eval 函数简介 三.Python eval 函数实战 四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python ...

  4. Python eval()函数

    Python eval()函数 eval()是python的一个内置函数,这个函数接受的参数是字符串,它返回字符串的表达式的结果.可以用来传递一个列表外面包着一层字符串给它,返回列表本身.在Paddl ...

  5. python办公室妙用-python eval()函数的妙用和滥用

    eval()函数十分强大,官方demo解释为:将字符串str当成有效的表达式来求值并返回计算结果: >>> s="8*8" >>> eval(s ...

  6. python eval函数_Python基础元素语法总结

    一.程序的格式框架 1.缩进 缩进是指每行语句前的空白区域,用来表示Python程序间的包含和层次关系. 一般语句不需要缩进,顶行书写且不留空白. 当表示分支.循环.函数.类等含义,在if,while ...

  7. python eval函数的神奇魔法

    eval函数的解析 eval() 函数 eval()书写简易计算器 eval() 深度解析 eval() 类型 特别注意 三岁和你用白话学编程,白话一堆,编程自会! eval() 函数 eval() ...

  8. python eval函数_Python中eval与exec区别 | 萧小寒

    摘要 学过JavaScript的人都知道,在JS中有一个函数叫内置函数叫eval.eval函数可计算某个字符串,并执行其中的的JavaScript代码.正是因为这个特性,所以现在很多教材都不推荐使用这 ...

  9. python eval函数_Python eval 函数妙用

    作者博文地址:https://www.cnblogs.com/liu-shuai/ eval 功能:将字符串str当成有效的表达式来求值并返回计算结果. 语法: eval(source[, globa ...

最新文章

  1. 别让SSL证书暴露了你的网站服务器IP
  2. P3531 [POI2012]LIT-Letters(求逆序对)
  3. 《多元统计分析》学习笔记之主成分分析
  4. 11-[函数进阶]-闭包
  5. shell将命令执行的结果赋值给 变量
  6. 以下哪个不是有效的java变量名,Java程序设计-中国大学mooc-题库零氪
  7. linux下用c语言写黄金矿工,C语言写的黄金矿工O(∩_∩)O---初稿,能玩了
  8. Linux内存管理:内存描述之内存区域zone
  9. 大学计算机网络实训目的,计算机专业大学生毕业实习目的
  10. 【胡学长 带你学 Global Mapper 】Global Mapper Pro 23.1 -x64安装教程(附*英*软件包下载)
  11. 快慢指针解决回文问题
  12. 【Linux】特别篇--GTK界面设计
  13. 投入和产出比例是衡量信息化成功的最主要标准
  14. 深度评测阿里云、腾讯云和华为云
  15. 微信服务号如何创建一个带参数的微信二维码?
  16. 数学建模-Lingo学习
  17. 如何部署简单腾讯云服务器
  18. go语言 | jwt鉴权初涉
  19. 财务自由之路--笔记
  20. java基于Springboot+vue的宠物销售商城网站 elementui

热门文章

  1. Docker使用阿里云docker镜像加速
  2. opencv实现正交匹配追踪算法OMP
  3. 安装sun-java5-jdk 在ubuntu 9.10 提示无法找到软件包sun-java5-jdk#...
  4. awk学习实战-原创
  5. 电商行业知识汇集 这里有你想要的东西
  6. 事务RFC(TRFC)原理和实战解析
  7. 致远表单代办状态删除
  8. SAP中和计量单位有关的表
  9. ALEIDoc EDI(3)--change point01
  10. 企业移动应用平台:走进SAP SUP的世界