您的位置: 网站首页> python基础> 当前文章
python的eval()函数及常见错误
老董-我爱我家房产SEO2020-03-14164围观,116赞
eval() 函数在其他编程语言中也存在,它的作用也是大同小异,它执行一个字符串表达式,并返回表达式的值。
eval(expression[, globals[, locals]])
expression -- 表达式(准确的说 expression参数将被处理为一个python的表达式)。 globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。 locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。
globals 、locals默认是None,这俩参数有点复杂,本节先不讨论这2个参数,看个例子。
# -*- coding: utf-8 -*- s1 = '3 + 5' print(eval(s1))
8
看起来似乎很简单,但是很容易犯3个错误,比如试图用eval函数定义几个变量、直接传入无效字符串、传入合法字符串报错,如下:
错误一
# -*- coding: utf-8 -*- s1 = 'a=2' print(eval(s1))
Traceback (most recent call last): File "D:/pyscript/py3script/selenium测试/test.py", line 4, inprint(eval(s1)) File " ", line 1 a=2 ^ SyntaxError: invalid syntax
错误二
# -*- coding: utf-8 -*- print(eval("034"))
Traceback (most recent call last): File "D:/pyscript/py3script/test.py", line 3, inprint(eval("034")) File " ", line 1 034 ^ SyntaxError: invalid token
错误三
# -*- coding: utf-8 -*- a = 'pythn66' print(eval(a))
Traceback (most recent call last): File "D:/pyscript/py3script/test.py", line 3, inprint(eval(a)) File " ", line 1, in NameError: name 'pythn66' is not defined
原因是什么呢?记住这个错误,下节课专门说一下。
很赞哦!
python编程网提示:转载请注明来源www.python66.com。
有宝贵意见可添加站长微信(底部),获取技术资料请到公众号(底部)。同行交流请加群
相关文章
文章评论
-
python的eval()函数及常见错误文章写得不错,值得赞赏
站点信息
- 网站程序:Laravel
- 客服微信:a772483200