编程语言
首页 > 编程语言> > 为什么Python的eval()拒绝这个多行字符串,我该如何解决?

为什么Python的eval()拒绝这个多行字符串,我该如何解决?

作者:互联网

我试图评估以下制表符缩进的字符串:

'''for index in range(10):
        os.system("echo " + str(index) + "")
'''

我明白了,“有一个错误:语法无效,第1行”

有什么抱怨的?我是否需要缩进以匹配eval()语句,或将其写入字符串文件或临时文件并执行该操作或其他内容?

谢谢,

解决方法:

eval评估像5 3这样的东西

exec执行像…的东西

>>> eval("for x in range(3):print x")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1
    for x in range(3):print x
      ^
SyntaxError: invalid syntax
>>> exec("for x in range(3):print x")
0
1
2
>>> eval('5+3')
8

标签:python,python-3-x,eval,metaprogramming
来源: https://codeday.me/bug/20191001/1840640.html