如果我在 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中有没有办法运行包含在字符串中的代码?
是的,eval()只计算表达式,不计算语句或套件(包含完整的 Python 程序)。
您正在寻找exec()功能。
exec("for i in range(100):\n\tprint(i)")
Run Code Online (Sandbox Code Playgroud)
但是,请记住您通常不需要eval()or exec(),尤其是您永远不会想要exec()oreval()用户输入。
| 归档时间: |
|
| 查看次数: |
585 次 |
| 最近记录: |