在这个快速教程中,我们将展示如何在Python和Jupyter中执行包含Python代码的字符串。
换句话说,我们将从另一个Python代码中动态地运行Python代码。我们将首先研究用语句执行代码,然后是用表达式执行代码,最后我们将介绍Jupyter Notebooks。
第一步:在Python中执行一个字符串语句
我们可以使用方法exec 来执行Python代码中存储为字符串的语句。
下面我们可以看到在Python中用exec() ,将字符串作为代码执行的简单例子。
some_code = 'print ("Hello World!")'
exec(some_code)
其结果是打印出来的。
Hello World!
关于方法exec() 的更多信息可以在官方文档中找到:exec - 内置函数
该方法被描述为。
这个函数支持Python代码的动态执行。对象必须是一个字符串或一个代码对象。如果是一个字符串,该字符串被解析为一套Python语句,然后被执行(除非发生语法错误)。
该方法的参数exec 。
- object - 一个字符串或一个代码对象
- globals (可选) - 一个字典
- locals (可选)--一个映射对象
globals 和locals 参数允许用户指定哪些全局和局部函数/变量是可用的。
注意。
执行或评估在某些情况下可能是危险的。只有当你确定你在做什么时才使用它。
第2步:在Python中执行一个字符串表达式
要执行包含Python表达式的字符串,我们可以使用方法--eval 。方法eval 将包含表达式的字符串作为Python代码进行评估。
x = 1
eval('x+1')
结果。
2
官方文档可以在这个链接上找到:eval - 内置函数。
该方法被描述为。
使用 globals 和 locals 字典作为全局和局部命名空间,对表达式参数进行解析并作为 Python 表达式(技术上讲,是一个条件列表)进行评估。
注意。
`eval'和`exec'之间的区别是 - `eval('x=2')` - 返回一个错误,而`exec('x=2')`工作正常。
步骤3:在Jupyter笔记本中执行一个字符串代码
如果你需要在Jupyter Notebook中动态地执行由字符串评估的Python代码,我们可以使用同样的方法。
execeval
都可以从另一个文件或Jupyter Notebook中读取代码并执行它。
x = 1
eval('x+1')
结果。
2
第4步:在Python中执行一个多行字符串代码
最后让我们看看在简单的例子中,我们如何用方法exec 来执行多行字符串作为Python代码。
some_code = """
x = 0
if x == False :
print("x Is False")
else :
print("x Is True")
"""
exec(some_code)
结果被打印在Python控制台。
x Is False
结论
在这篇文章中,我们研究了作为Python代码执行和评估字符串表达式或语句的不同方案。
在这些代码例子中,我们着重于执行,但是评估也是非常相似和简单的。