美文网首页
Python:eval()

Python:eval()

作者: w春风十里w | 来源:发表于2017-09-28 18:27 被阅读0次

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

so,结合math当成一个计算器很好用。

其他用法,可以把list,tuple,dict和string相互转化。见下例子:


a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]"

b = eval(a)

b

Out[3]: [[1, 2], [3, 4], [5, 6], [7, 8], [9, 0]]

type(b)

Out[4]: list

a = "{1: 'a', 2: 'b'}"

b = eval(a)

b

Out[7]: {1: 'a', 2: 'b'}

type(b)

Out[8]: dict

a = "([1,2], [3,4], [5,6], [7,8], (9,0))"

b = eval(a)

b

Out[11]: ([1, 2], [3, 4], [5, 6], [7, 8], (9, 0))

不可谓不强大!

BUT!强大的函数有代价。安全性是其最大的缺点。

想一想这种使用环境:需要用户输入一个表达式,并求值。

如果用户恶意输入,例如:

__import__('os').system('dir')

那么eval()之后,你会发现,当前目录文件都会展现在用户前面。

那么继续输入

open('文件名').read()

代码都给人看了。获取完毕,一条删除命令,文件消失。

相关文章

  • 08.eval、exec和其他函数

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

  • python中eval的用法

    python中eval的用法 eval(<字符串>) 能够以Python表达式的方式解析并执行字符串,并将返回结果...

  • Python语法之eval()函数

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

  • Python:eval()

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

  • python学习-re模块-Python3 正则表达式-菜鸟教程

    菜鸟教程:http://www.runoob.com/python/python-func-eval.html正则...

  • python eval()方法将字符串转换为元组

    python eval()方法将字符串转换为元组 从文件中读取如下数据: 简单粗暴的方法:eval(line)就...

  • eval

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

  • Python函数-eval()

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

  • Python eval 函数

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

  • python eval()方法

    面试中的一道题:修改函数,使之输入func_2能运行,并且输出结果为123。 分析一下,输入func_2,b就被赋...

网友评论

      本文标题:Python:eval()

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