eval()最基础的作用是去掉引号,一般来说是配合input()输入函数使用的。
需要注意的是,input函数返回字符串,所以eval一般用来提取数字。随意使用会出现一些问题,如下:
a = eval(input())
我从键盘输入一个a系统报错:
a = eval(input())
File "<string>", line 1, in <module>
NameError: name 'a' is not defined
什么意思呢?指的是a未被定义,那么为什么没有被定义呢?因为input函数返回"a"后,eval函数又去掉了引号,最后得到a=a,虽然python不要求程序猿自己定义类型,但是变量依旧要初始化,a=a没有任何作用或是意义。