101 votes

Est-il possible d'imprimer en utilisant des couleurs différentes dans le Notebook d'ipython?

Est-il possible d'une manière ou d'une autre de faire apparaître une certaine sortie dans une couleur différente dans le carnet IPython? Par exemple, quelque chose dans ce genre:

 print("Bonjour monde en rouge", color='red')

106voto

Le carnet de notes dispose bien sûr de sa propre mise en évidence syntaxique. Je vous conseille donc d'être prudent lorsque vous utilisez la couleur ailleurs, simplement pour éviter de rendre la lecture plus difficile pour vous-même ou quelqu'un d'autre (par exemple, la sortie devrait simplement être en noir, mais vous obtenez des parties en rouge s'il y a une exception).

Mais (à ma grande surprise), il semble que vous puissiez utiliser des codes d'échappement ANSI (même dans le navigateur). Du moins, j'ai pu le faire :

Sur l'invite Python par défaut :

>>> print("\x1b[31m\"red\"\x1b[0m")
"red"

Dans le carnet de notes :

In [28]: print("\x1b[31m\"red\"\x1b[0m")
         "red"

(Évidemment, j'ai triché ici avec la mise en évidence syntaxique de SO pour que "red" soit imprimé en rouge dans les deux exemples. Je ne pense pas que SO permette à un utilisateur de définir une couleur pour du texte.)

Je ne saurais vraiment pas comment obtenir d'autres couleurs.

Pour en savoir plus sur les codes d'échappement ANSI, je vous suggère l'article de Wikipedia. Et si vous trouvez que ce qui précède est trop verbeux, vous pouvez bien sûr écrire une fonction d'enrobage autour de cela.

63voto

anand tripathi Points 3051

Vous pouvez utiliser cette bibliothèque termcolor et vous pouvez obtenir toutes les autres bibliothèques officielles de Python sur PyPi.

  1. pip install termcolor
  2. ensuite allez à ipython

Code

from termcolor import colored
print(colored('hello', 'red'), colored('world', 'green'))
print(colored("hello red world", 'red'))

Output:

hello world
hello red world

Le premier argument est ce que vous voulez imprimer sur la console et le deuxième argument utilise cette couleur.

Consultez la documentation sur pypi.python.org pour plus d'informations

38voto

alvas Points 4333

Voici une astuce rapide:

à partir de IPython.display import HTML as html_print

def cstr(s, color='black'):
    retourner "{}".format(color, s)

gauche, mot, droite = 'foo' , 'abc' , 'bar'
html_print(cstr(' '.join([gauche, cstr(mot, color='red'), droite]), color='black') )

[out]:

enter image description here

Si vous voulez juste une seule couleur: html_print(cstr('abc', 'red'))

38voto

Kourosh Meshgi Points 382

Similaire à ce que @alvas a mentionné mais plus simple

from IPython.display import Markdown
display (Markdown('ceci est en rouge.'))

33voto

Nikhil G Points 157

Dans le carnet de notes Jupiter, nous pouvons utiliser un marqueur de couleur pour imprimer la sortie dans différentes couleurs. Il existe trois façons d'utiliser un marqueur de couleur.

Voyons comment imprimer en jaune dans un carnet de notes.

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

Certaines couleurs sont :

  • yellow = '\033[93m' *** green = '\033[92m'**
  • red = '\033[91m' blue = '\033[94m' pink = '\033[95m'

Vous pouvez changer le dernier chiffre pour obtenir d'autres couleurs également.

enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X