如何在python中将字符串转换为python代码?

Fla*_*ama 0 python

如果我在 python 文件中有一个包含一些代码的字符串。我想在字符串中运行代码,例如:

program = "for i in range(100):\n\tprint(i)"
eval(program)
Run Code Online (Sandbox Code Playgroud)

但是,我很确定 eval 仅适用于数学运算,因此会引发语法错误:

Traceback (most recent call last):
  File "main.py", line 2, in <module>
    eval(program)
  File "<string>", line 1
    for i in range(100):
      ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

python中有没有办法运行包含在字符串中的代码?

AKX*_*AKX 6

是的,eval()只计算表达式,不计算语句或套件(包含完整的 Python 程序)。

您正在寻找exec()功能

exec("for i in range(100):\n\tprint(i)")
Run Code Online (Sandbox Code Playgroud)

但是,请记住您通常不需要eval()or exec(),尤其是您永远不会想要exec()oreval()用户输入。

  • 这显然是重复的。你已经存在足够长的时间知道将其标记为一个...... (2认同)