您的位置: 网站首页> 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, in 
    print(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, in 
    print(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, in 
    print(eval(a))
  File "", line 1, in 
NameError: name 'pythn66' is not defined




  原因是什么呢?记住这个错误,下节课专门说一下。

很赞哦!

python编程网提示:转载请注明来源www.python66.com。
有宝贵意见可添加站长微信(底部),获取技术资料请到公众号(底部)。同行交流请加群 python学习会

文章评论

    python的eval()函数及常见错误文章写得不错,值得赞赏

站点信息

  • 网站程序:Laravel
  • 客服微信:a772483200