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

如何让Python函数返回带颜色的文本?

解决Python函数返回值显示彩色文本的问题

这个问题我之前在Jupyter Notebook里也踩过坑!核心原因是笔记本环境对print输出和函数返回值的处理逻辑完全不同:

  • print语句会直接把包含ANSI转义码(比如\033[92m)的字符串输出到终端/笔记本的输出区域,环境会自动解析这些转义码,从而显示彩色;
  • 但函数的返回值是被笔记本的显示系统当作纯文本来渲染的,它不会主动解析ANSI转义码,所以你看到的就是带转义字符的黑色文本。

针对Python笔记本(尤其是Jupyter系列),这里有两种实用的解决方案:

方案1:用IPython的Markdown渲染

利用IPython的display模块,把带颜色的内容以Markdown格式渲染出来,同时可以保留返回值:

from IPython.display import display, Markdown

def function():
    # 用Markdown的内联样式设置颜色
    colored_content = "<span style='color:green'>colored word</span>"
    # 原来的print逻辑保留
    print('\033[92m colored word')
    # 在笔记本中渲染彩色文本
    display(Markdown(colored_content))
    # 返回原始字符串(如果需要后续使用)
    return colored_content

方案2:用HTML渲染更灵活

如果需要更精细的样式控制,比如自定义十六进制颜色、字体大小等,可以用HTML渲染:

from IPython.display import display, HTML

def function():
    # 自定义HTML样式
    colored_html = "<span style='color:#2ecc71; font-weight:bold'>colored word</span>"
    print('\033[92m colored word')
    display(HTML(colored_html))
    return colored_html

额外说明

如果你的Python笔记本不是Jupyter环境,比如PyCharm的笔记本、VS Code的交互式窗口,这些方案大多也适用——因为主流IDE的笔记本环境都支持解析HTML/Markdown格式的输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 07:07:32