python教程

当前位置:首页 > python基础教程 > 当前文章

python基础教程

python的eval()函数及常见错误

2020-03-14 90赞 老董笔记

  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的eval()函数及常见错误文章写得不错,值得赞赏