Comment imprimer du texte en gras en Python?
Par exemple:
print "hello"
Que dois-je faire pour que le texte «bonjour» s'affiche en gras?
Comment imprimer du texte en gras en Python?
Par exemple:
print "hello"
Que dois-je faire pour que le texte «bonjour» s'affiche en gras?
Réponses:
class color:
PURPLE = '\033[95m'
CYAN = '\033[96m'
DARKCYAN = '\033[36m'
BLUE = '\033[94m'
GREEN = '\033[92m'
YELLOW = '\033[93m'
RED = '\033[91m'
BOLD = '\033[1m'
UNDERLINE = '\033[4m'
END = '\033[0m'
print(color.BOLD + 'Hello World !' + color.END)
Utilisez ceci:
print '\033[1m' + 'Hello'
Et pour revenir à la normale:
print '\033[0m'
Cette page est une bonne référence pour l'impression en couleurs et en poids de police. Accédez à la section intitulée "Définir le mode graphique:"
Et notez que cela ne fonctionnera pas sur tous les systèmes d'exploitation, mais vous n'avez besoin d'aucun module.
Vous pouvez utiliser termcolor pour cela:
sudo pip install termcolor
Pour imprimer un gras coloré:
from termcolor import colored
print(colored('Hello', 'green', attrs=['bold']))
Pour plus d'informations, consultez termcolor sur PyPi .
simple-colors est un autre package avec une syntaxe similaire:
from simple_colors import *
print(green('Hello', ['bold'])
L'équivalent en colorama peut être Style.BRIGHT.
Dans la programmation informatique directe, il n'y a pas de "impression de texte en gras". Reculons un peu et comprenons que votre texte est une chaîne d'octets et que les octets ne sont que des paquets de bits. À l'ordinateur, voici votre texte "bonjour", en binaire .
0110100001100101011011000110110001101111
Chaque un ou zéro est un peu. Tous les huit bits sont un octet. Chaque octet est, dans une chaîne comme celle de Python 2.x, un élément lettre / chiffre / ponctuation (appelé un caractère). Donc par exemple:
01101000 01100101 01101100 01101100 01101111
h e l l o
L'ordinateur traduit ces bits en lettres, mais dans une chaîne traditionnelle (appelée chaîne ASCII), rien n'indique du texte en gras. Dans une chaîne Unicode, qui fonctionne un peu différemment, l'ordinateur peut prendre en charge les caractères de langue internationale, comme les caractères chinois, mais encore une fois, rien ne permet de dire que certains textes sont en gras et d'autres non. Il n'y a pas non plus de police explicite, de taille de texte, etc.
Dans le cas de l'impression HTML, vous sortez toujours une chaîne. Mais le programme informatique lisant cette chaîne (un navigateur Web) est programmé pour interpréter le texte comme this is <b>bold</b>«ceci est en gras » lorsqu'il convertit votre chaîne de lettres en pixels à l'écran. Si tout le texte était WYSIWYG, le besoin de HTML lui-même serait atténué - il vous suffirait de sélectionner le texte dans votre éditeur et de le mettre en gras au lieu de taper le HTML.
D'autres programmes utilisent des systèmes différents - de nombreuses réponses expliquent un système complètement différent d'impression de texte en gras sur les terminaux. Je suis heureux que vous ayez découvert comment faire ce que vous voulez faire, mais à un moment donné, vous voudrez comprendre comment fonctionnent les chaînes et la mémoire.
Découvrez colorama . Cela n'aide pas nécessairement avec le gras ... mais vous pouvez faire une sortie colorisée sur Windows et Linux, et contrôler la luminosité:
from colorama import *
init(autoreset=True)
print Fore.RED + 'some red text'
print Style.BRIGHT + Fore.RED + 'some bright red text'
Il existe un module très utile pour la mise en forme du texte (gras, souligné, couleurs ..) en Python. Il utilise curseslib mais c'est très simple à utiliser.
Un exemple:
from terminal import render
print render('%(BG_YELLOW)s%(RED)s%(BOLD)sHey this is a test%(NORMAL)s')
print render('%(BG_GREEN)s%(RED)s%(UNDERLINE)sAnother test%(NORMAL)s')
J'ai écrit un module simple nommé colors.py pour rendre cela un peu plus pythonique:
import colors
with colors.pretty_output(colors.BOLD, colors.FG_RED) as out:
out.write("This is a bold red text")
with colors.pretty_output(colors.BG_GREEN) as out:
out.write("This output have a green background but you " +
colors.BOLD + colors.FG_RED + "can" + colors.END + " mix styles")
ImportError: No module named terminal ImportError: No module named render En fait, c'est le seul site que j'ai pu trouver sur le module "terminal". Veuillez préciser.
terminalmodule, mais ils ont redirigé la page. Voici le code mis en cache par google.
print '\033[1m Your Name \033[0m'
\ 033 [1m est l'unicode pour le gras dans le terminal \ 033 [0m est l'unicode pour terminer le texte édité et retourner le format de texte par défaut !!!!!
si vous n'utilisez pas \ 033 [0m, tout le texte à venir du terminal deviendra gras !!!!!!!!!
Installez le termcolormodule
sudo pip install termcolor
puis essayez ceci pour le texte coloré
from termcolor import colored
print colored('Hello', 'green')
ou ceci pour le texte en gras:
from termcolor import colored
print colored('Hello', attrs=['bold'])
Dans Python 3, vous pouvez également utiliser cprinten remplacement de l'élément intégré print, avec le deuxième paramètre facultatif pour les couleurs ou le attrsparamètre pour le gras (et d'autres attributs tels que underline) en plus des printarguments nommés normaux tels que fileou end.
import sys
from termcolor import cprint
cprint('Hello', 'green', attrs=['bold'], file=sys.stderr)
Divulgation complète, cette réponse est fortement basée sur la réponse d'Olu Smith et était destinée à être une modification , ce qui aurait considérablement réduit le bruit sur cette page, mais en raison du concept erroné de certains critiques de ce qu'une modification est censée être, je suis maintenant obligé pour en faire une réponse distincte.
Certains terminaux permettent d'imprimer du texte en couleur. Certaines couleurs semblent "audacieuses". Essayer:
print ('\033[1;37mciao!')
La séquence '\ 033 [1; 37m' permet à certains terminaux de commencer à imprimer en "blanc brillant" qui peut ressembler un peu à du blanc en gras. '\ 033 [0; 0m' le désactivera.
En supposant que vous vouliez vraiment dire "imprimer" sur un vrai terminal d'impression:
>>> text = 'foo bar\r\noof\trab\r\n'
>>> ''.join(s if i & 1 else (s + '\b' * len(s)) * 2 + s
... for i, s in enumerate(re.split(r'(\s+)', text)))
'foo\x08\x08\x08foo\x08\x08\x08foo bar\x08\x08\x08bar\x08\x08\x08bar\r\noof\x08\
x08\x08oof\x08\x08\x08oof\trab\x08\x08\x08rab\x08\x08\x08rab\r\n'
Envoyez-le simplement à votre stdout.
En python 3, vous pouvez utiliser colorama - simple_colors: (page Couleurs simples: https://pypi.org/project/simple-colors/ - allez dans la rubrique 'Utilisation'.) Avant de faire ce qui est ci-dessous, assurez-vous de vous pip install simple_colours.
from simple_colors import *
print(green('hello', 'bold'))
pip install simple_colors