这个函数有什么用呢,他进行运算后得到结果,用print不是一样的吗?
python的变量是有type的。对于一个字符串,eval是去掉变量字符串的标志,就是引号
去掉引号后的内容,如果还是python的一个类型,那就是它,不然就出错。
需求:用户输入一段代码,然后执行这段由用户输入的代码。
eval(str)表示把str字符串当做代码来运行,并获取这行代码的返回值,例如运行一个函数。还有一个类似的函数exec,exec中运行的代码是没有返回值的,例如赋值运算,if条件判断等等。
a = eval("print('hahaha')") #程序运行print('hahaha')这行代码并获取返回值,print的返回值是None
b = eval("[1,2,3]") #变成了字符串的列表是不能用list()方法复原的,但可以用eval()
exec("a = 123") #程序将123赋值给a,这行代码是不可能有返回值的
eval() 函数用来执行一个字符串表达式,并返回表达式的值
也就是很万能的一个函数,比如你要实现一个计算器功能,如果没有eval会很麻烦,但是有了它,直接将计算的式子输入后就可以出结果,当然它远不止这些功能
如果对你有用,记得采纳哦~