【问题标题】:How to convert a string to python code in python? [duplicate]如何在python中将字符串转换为python代码? [复制]
【发布时间】:2020-03-27 07:56:54
【问题描述】:

如果我在 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


【解决方案1】:

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

您正在寻找exec() function

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

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

【讨论】:

  • 这显然是重复的。您已经存在了足够长的时间,知道将其标记为...
【解决方案2】:

Use the exec() function.

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

【讨论】:

    猜你喜欢
    • 2017-10-08
    • 2021-11-17
    • 2012-07-20
    • 2019-01-25
    • 2016-12-06
    • 2011-11-23
    • 2021-11-25
    • 2021-06-16
    • 1970-01-01
    相关资源
    最近更新 更多