python eval()函数使用
一、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()函数使用相关推荐
- python eval 入门_Python学习笔记整理3之输入输出、python eval函数
Python学习笔记整理3之输入输出.python eval函数 来源:中文源码网 浏览: 次 日期:2018年9月2日 Python学习笔记整理3之输入输出.python eval函数 ...
- Python eval 函数 - Python零基础入门教程
目录 一.前言 二.Python eval 函数简介 三.Python eval 函数实战 四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python ...
- Python eval 函数 -Python零基础入门教程
目录 一.前言 二.Python eval 函数简介 三.Python eval 函数实战 四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python ...
- Python eval()函数
Python eval()函数 eval()是python的一个内置函数,这个函数接受的参数是字符串,它返回字符串的表达式的结果.可以用来传递一个列表外面包着一层字符串给它,返回列表本身.在Paddl ...
- python办公室妙用-python eval()函数的妙用和滥用
eval()函数十分强大,官方demo解释为:将字符串str当成有效的表达式来求值并返回计算结果: >>> s="8*8" >>> eval(s ...
- python eval函数_Python基础元素语法总结
一.程序的格式框架 1.缩进 缩进是指每行语句前的空白区域,用来表示Python程序间的包含和层次关系. 一般语句不需要缩进,顶行书写且不留空白. 当表示分支.循环.函数.类等含义,在if,while ...
- python eval函数的神奇魔法
eval函数的解析 eval() 函数 eval()书写简易计算器 eval() 深度解析 eval() 类型 特别注意 三岁和你用白话学编程,白话一堆,编程自会! eval() 函数 eval() ...
- python eval函数_Python中eval与exec区别 | 萧小寒
摘要 学过JavaScript的人都知道,在JS中有一个函数叫内置函数叫eval.eval函数可计算某个字符串,并执行其中的的JavaScript代码.正是因为这个特性,所以现在很多教材都不推荐使用这 ...
- python eval函数_Python eval 函数妙用
作者博文地址:https://www.cnblogs.com/liu-shuai/ eval 功能:将字符串str当成有效的表达式来求值并返回计算结果. 语法: eval(source[, globa ...
最新文章
- 别让SSL证书暴露了你的网站服务器IP
- P3531 [POI2012]LIT-Letters(求逆序对)
- 《多元统计分析》学习笔记之主成分分析
- 11-[函数进阶]-闭包
- shell将命令执行的结果赋值给 变量
- 以下哪个不是有效的java变量名,Java程序设计-中国大学mooc-题库零氪
- linux下用c语言写黄金矿工,C语言写的黄金矿工O(∩_∩)O---初稿,能玩了
- Linux内存管理:内存描述之内存区域zone
- 大学计算机网络实训目的,计算机专业大学生毕业实习目的
- 【胡学长 带你学 Global Mapper 】Global Mapper Pro 23.1 -x64安装教程(附*英*软件包下载)
- 快慢指针解决回文问题
- 【Linux】特别篇--GTK界面设计
- 投入和产出比例是衡量信息化成功的最主要标准
- 深度评测阿里云、腾讯云和华为云
- 微信服务号如何创建一个带参数的微信二维码?
- 数学建模-Lingo学习
- 如何部署简单腾讯云服务器
- go语言 | jwt鉴权初涉
- 财务自由之路--笔记
- java基于Springboot+vue的宠物销售商城网站 elementui