各位大捞,我觉得我还是没理解python的eval函数,为什么我用input输入汉字和字母时,前面放了eval就会报错。。

各位大捞,我觉得我还是没理解python的eval函数,为什么我用input输入汉字和字母时,前面放了eval就会报错。。

eval(expression [ , globals [ , locals ]] )
实参是一个字符串,以及可选的 globals 和 locals。globals 实参必须是一个字典。locals 可以是任何映
射对象。表达式解析参数 expression 并作为 Python 表达式进行求值。

>>> eval("1+2")
3
>>> eval("[1,2,3]")
[1, 2, 3]
>>> eval("['1',2,3]")
['1', 2, 3]
>>> eval("abc")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1, in <module>
NameError: name 'abc' is not defined
>>> abc=100
>>> eval("abc")
100
>>> eval("001")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1
    001
      ^
SyntaxError: leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integers
>>>
>>> a={"姓名":"张三"}
>>>
>>> eval("a")
{'姓名': '张三'}
>>> eval("a['姓名']")
'张三'

eval会执行参数字符串的值,你输入字母它就会按照变量解析,找不到就报错。即使是数字用0开始也会报错

你就记住一点就完了,eval里面不管放了啥,都再套一层双引号

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632