【发布时间】:2017-03-09 09:14:33
【问题描述】:
在 python 中,如果我 exec 打印一个值的语句,我将看到输出,例如,exec("print 10") 给我输出 10。但是,如果我这样做 exec("10") 我什么也没有输出,其中如果我在交互式 shell 中输入 10,我会得到 10 作为输出。使用exec 时如何获得此输出?也就是说,如果要执行的语句是一个表达式,我打印它的结果。
我的问题是如何确定要执行的语句是否是表达式。我是否应该执行以下操作:
def my_exec(script):
try:
print eval(compile(script, '<string>', 'eval'))
except SyntaxError:
exec(script)
# Prints 10.
my_exec("print(10)")
# Prints 10 as well.
my_exec("10")
更新:
基本上我想要在 jupyter notebook 中执行单元格的行为。
【问题讨论】:
-
请不要问,立即删除,转发question。
-
谢谢@TigerhawkT3!但是,这不是重复的。您提到的帖子中没有答案。
-
@TigerhawkT3 你会删除重复标记吗?