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

如何在Jupyter Notebook中便捷正确显示多行字符串字面量?

Jupyter Notebook多行字符串自动换行的全局解决方案

针对你的需求,这里有几个无需手动用print包裹的全局解决方案,直接在初始化单元格运行即可生效:

方案1:用HTML渲染保留格式

这个方法会让字符串输出以预格式化的HTML标签渲染,完美保留换行和空格:

from IPython.display import HTML
import sys

def format_str_with_newlines(obj):
    if isinstance(obj, str):
        return HTML(f"<pre>{obj}</pre>")
    return None

# 注册字符串类型的HTML格式化器,优先级高于默认
sys.displayhook.formatter.formatters['text/html'].for_type(str, format_str_with_newlines)

运行后,所有返回字符串的函数输出都会自动解析换行符,保持原有的多行格式。

方案2:替换默认显示逻辑为print输出字符串

如果更习惯print的原生换行效果,可以直接修改IPython的显示钩子,让字符串类型的输出自动用print处理:

import sys
original_display = sys.displayhook

def custom_display(value):
    if value is not None:
        if isinstance(value, str):
            print(value)
        else:
            original_display(value)

sys.displayhook = custom_display

这个方案对其他类型的输出(如DataFrame、图像)没有影响,仅针对字符串自动换行。

注意事项

  • 以上代码只需在Notebook的初始化单元格运行一次,整个会话都会生效
  • 如果需要恢复默认行为,重新运行sys.displayhook = original_display即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 01:03:10