You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在IPython中禁用Out[]输出但保留print语句的打印内容?

解决方法

要抑制Out[1]形式的Figure输出但保留print的内容,核心是阻止IPython显示代码块最后一个表达式的返回值(这里就是plt.figure()返回的Figure对象),有两种简单的实现方式:

方法一:在执行代码的末尾添加分号

修改你定义的code字符串,在plt.figure()后面加上分号;,IPython遇到分号就会自动抑制该行表达式的返回值输出,而print的内容不受影响:

from IPython import get_ipython
ipython = get_ipython()

code = """
import matplotlib.pyplot as plt

print("bla")

plt.figure();  # 加个分号抑制返回值显示
"""
res = ipython.run_cell(code)

执行后只会打印出bla,不会再出现Out[1]: <Figure ...>的输出。

方法二:让代码块最后返回None

如果不想加分号,也可以在代码块最后加一行None,这样最后一个表达式的返回值是None,IPython默认不会显示None的输出:

code = """
import matplotlib.pyplot as plt

print("bla")

plt.figure()
None  # 用None作为最后一行,抑制输出
"""
res = ipython.run_cell(code)

原理说明

IPython的交互模式下,默认会显示代码块最后一个表达式的返回值(除非该表达式是赋值语句或者末尾有分号)。你之前的代码里,plt.figure()会返回一个Figure对象,这个对象就被IPython当作输出显示为Out[1]。而print("bla")是直接向标准输出(stdout)打印内容,和表达式返回值的输出是两个独立的机制,所以上面的方法只会抑制后者,不会影响前者。

内容的提问来源于stack exchange,提问作者Zorglub29

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:30:59