是否可以在ipython的笔记本中使用不同的颜色进行打印?

Rab*_*ski 48 python jupyter-notebook

是否有可能在IPython笔记本中以某种不同的颜色显示某些输出?例如,有些东西:

 print("Hello Red World", color='red')
Run Code Online (Sandbox Code Playgroud)

小智 55

当然,笔记本有自己的语法高亮.所以我在其他地方使用颜色时要小心,只是为了避免让自己或其他人更难以阅读(例如,输出应该只是黑色,但如果有异常,你会得到红色的部分).

但是(令我惊讶的是),您似乎可以使用ANSI转义码(即使在浏览器中).至少,我可以:

在默认的Python提示符下:

>>> print("\x1b[31m\"red\"\x1b[0m")
"red"
Run Code Online (Sandbox Code Playgroud)

在笔记本中:

In [28]: print("\x1b[31m\"red\"\x1b[0m")
         "red"
Run Code Online (Sandbox Code Playgroud)

(显然,我在这里欺骗了SO的语法高亮,所以在两个例子中都用红色打印"红色".我不认为SO允许用户为文本设置颜色.)

我真的不知道另一种获取颜色的方法.

有关ANSI转义码的更多信息,我建议维基百科的文章.如果您发现上面的详细信息,您当然可以围绕此编写一个包装函数.


ana*_*thi 22

你可以使用这个库termcolor,你可以在pypi中获得python的所有其他官方库

请参阅pypi.python.org中的文档或按照以下步骤操作

  1. pip安装termcolor
  2. 然后转到ipython


from termcolor import colored
print(colored('hello', 'red'), colored('world', 'green'))
print(colored("hello red world", 'red'))
Run Code Online (Sandbox Code Playgroud)

输出:

hello world
hello red world
Run Code Online (Sandbox Code Playgroud)

第一个参数是您想要在控制台上打印的内容,第二个参数使用该颜色

  • 它可以在 Jupyter 笔记本上运行吗?或者只有 Jupyter 解释器? (3认同)
  • 只适用于两者的是你必须拥有那个库termcolor (2认同)
  • [** colorama **](https://github.com/tartley/colorama)是另一个类似的库,它使您可以执行`print(Fore.RED +'some red text')等操作;print(Back.GREEN +'and with a green background')`或`print(colored('Hello,World!','green','on_red'))' (2认同)

alv*_*vas 18

这是一个快速的黑客:

from IPython.display import HTML as html_print

def cstr(s, color='black'):
    return "<text style=color:{}>{}</text>".format(color, s)

left, word, right = 'foo' , 'abc' , 'bar'
html_print(cstr(' '.join([left, cstr(word, color='red'), right]), color='black') )
Run Code Online (Sandbox Code Playgroud)

[OUT]:

在此输入图像描述

如果你只想要一种颜色: html_print(cstr('abc', 'red'))


Mat*_*att 13

不是原始的Python打印.您必须_repr_html_在对象上定义并返回或调用IPython.lib.display(object_with_repr_html).

我想你可以覆盖内置打印件来自动完成...

你可以从激发http://nbviewer.ipython.org/5098827,代码在GitHub上一个要点,ML讨论在这里.


小智 13

与@alvas提到的类似,但更简单

from IPython.display import Markdown
display (Markdown('this is in <span style="color: #ff0000">red</span> color.'))
Run Code Online (Sandbox Code Playgroud)


Nik*_*l G 8

在 Jupiter notebook 中,我们可以使用颜色标记以不同颜色打印输出 我们可以通过三种方式使用颜色标记。

让我们看看如何在笔记本中打印黄色。

  1. print('\033[93m output')
  2. print('\033[93m' 'output')
  3. print('\033[93m' + 'output')

一些颜色是:

  • 黄色 = '\033[93m'
  • 绿色 = '\033[92m'
  • 红色 = '\033[91m'
  • 蓝色 = '\033[94m'
  • 粉红色 = '\033[95m'

您可以更改最后一个数字并获得其他颜色。

在此处输入图片说明

  • 标准颜色为黑色=0、红色=1、绿色=2、黄色=3、蓝色=4、品红色=5、青色=6、白色=7。9 表示“关闭”或默认。要设置前景色,请使用 ESCAPE(即上面的 \033)、“[”、30+ 颜色编号和“m”。对于背景颜色,它是 40 + 颜色编号。完成后,用 39 或 49 关闭颜色,或者完全省略该数字。其他数字可以给你带来特殊效果,如粗体、斜体、闪烁…… (4认同)
  • 简单且无需额外的解决方法。我想这应该是主要的答案。 (4认同)

Zag*_*ags 6

有一个彩色库pip install colored),您可以使用它来修改字符串以获取颜色代码以修改其打印方式。使用示例:

import colored
print(colored.bg("white") + colored.fg("red") + "Hello world!")
Run Code Online (Sandbox Code Playgroud)


mik*_*iki 6

感谢 @alvas 函数并添加另一个函数,我们得到了一种非常简单的打印方法

from IPython.display import HTML as html_print
from IPython.display import display

def cstr(s, color='black'):
    return "<text style=color:{}>{}</text>".format(color, s)

def print_color(t):
    display(html_print(' '.join([cstr(ti, color=ci) for ti,ci in t])))

print_color((('hello my name is', 'black'),('jhjfd','red')))
print_color((('hello my name is', 'green'),))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述