python - 如何在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中有没有一种方法可以运行字符串中包含的代码?
解决方案
是的,eval()
只计算表达式,而不是语句或套件(包含完整的 Python 程序)。
您正在寻找exec()
功能。
exec("for i in range(100):\n\tprint(i)")
但是,请记住您通常不需要eval()
or exec()
,尤其是您永远不会想要exec()
oreval()
用户输入。
推荐阅读
- angular - DataTables Angular的日期时间列排序问题
- ui-grid - ui-grid - 禁用全选时如何设置选择列的显示名称?
- sql - CASE WHEN THEN 无法对包含聚合或子查询的表达式执行聚合函数
- javascript - 仅反转字符串中的某些单词
- java - 如何通过 Aspose.Email for java 仅在 gmail 中阅读未读电子邮件
- ubuntu-18.04 - 在 Ubuntu 18.04 上安装 Android SDK 管理器
- swift - Swift UIView 不会隐藏图像
- javascript - 正则表达式允许用 | 分隔的 0-5 组数字列表(整数或十进制)
- html - 获取内联块元素以占用所有空白空间
- java - 如何在Java中创建一个带小数的方程?