首页 > 解决方案 > 如何在python中将字符串转换为python代码?

问题描述

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

program = "for i in range(100):\n\tprint(i)"
eval(program)

但是,我很确定 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

python中有没有一种方法可以运行字符串中包含的代码?

标签: python

解决方案


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

您正在寻找exec()功能

exec("for i in range(100):\n\tprint(i)")

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


推荐阅读