Jak wydrukować pogrubiony tekst w Pythonie?
Na przykład:
print "hello"
Co mam zrobić, aby tekst „cześć” był pogrubiony?
Jak wydrukować pogrubiony tekst w Pythonie?
Na przykład:
print "hello"
Co mam zrobić, aby tekst „cześć” był pogrubiony?
Odpowiedzi:
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)
Użyj tego:
print '\033[1m' + 'Hello'
Aby wrócić do normalnego trybu:
print '\033[0m'
Ta strona jest dobrym punktem odniesienia do drukowania w kolorach i grubościach czcionek. Przejdź do sekcji „Ustaw tryb graficzny:”
Pamiętaj, że to nie zadziała we wszystkich systemach operacyjnych, ale nie potrzebujesz żadnych modułów.
Możesz do tego użyć termcolor:
sudo pip install termcolor
Aby wydrukować kolorowe pogrubienie:
from termcolor import colored
print(colored('Hello', 'green', attrs=['bold']))
Aby uzyskać więcej informacji, zobacz termcolor na PyPi .
simple-colors to kolejny pakiet o podobnej składni:
from simple_colors import *
print(green('Hello', ['bold'])
Odpowiednikiem może być coloramaStyle.BRIGHT .
W prostym programowaniu komputerowym nie ma czegoś takiego jak „drukowanie pogrubionego tekstu”. Cofnijmy się trochę i zrozummy, że twój tekst jest ciągiem bajtów, a bajty to po prostu wiązki bitów. Oto Twój tekst „hello” w postaci binarnej do komputera .
0110100001100101011011000110110001101111
Każdy jeden lub zero to trochę. Każde osiem bitów to bajt. Każdy bajt w łańcuchu takim jak ten w Pythonie 2.x zawiera jedną literę / cyfrę / element interpunkcyjny (nazywany znakiem). Na przykład:
01101000 01100101 01101100 01101100 01101111
h e l l o
Komputer tłumaczy te bity na litery, ale w tradycyjnym łańcuchu (nazywanym ciągiem ASCII) nie ma nic, co wskazywałoby na pogrubiony tekst. W ciągu znaków Unicode, który działa trochę inaczej, komputer może obsługiwać międzynarodowe znaki językowe, takie jak chińskie, ale znowu nie ma nic do powiedzenia, że część tekstu jest pogrubiona, a część nie. Nie ma również wyraźnej czcionki, rozmiaru tekstu itp.
W przypadku drukowania HTML nadal generujesz ciąg. Ale program komputerowy odczytujący ten ciąg (przeglądarka internetowa) jest zaprogramowany do interpretowania tekstu, takiego this is <b>bold</b>jak „to jest pogrubione ”, kiedy konwertuje ciąg liter na piksele na ekranie. Gdyby cały tekst był WYSIWYG, potrzeba samego HTML byłaby złagodzona - po prostu zaznaczyłbyś tekst w swoim edytorze i pogrubił go zamiast wpisywać HTML.
Inne programy używają innych systemów - wiele odpowiedzi wyjaśniało zupełnie inny system drukowania pogrubionego tekstu na terminalach. Cieszę się, że dowiedziałeś się, jak robić to, co chcesz, ale w pewnym momencie będziesz chciał zrozumieć, jak działają struny i pamięć.
Sprawdź colorama . Niekoniecznie pomaga to w pogrubieniu ... ale możesz tworzyć kolorowe wydruki zarówno w systemie Windows, jak i Linux oraz kontrolować jasność:
from colorama import *
init(autoreset=True)
print Fore.RED + 'some red text'
print Style.BRIGHT + Fore.RED + 'some bright red text'
Istnieje bardzo przydatny moduł do formatowania tekstu (pogrubienie, podkreślenie, kolory…) w Pythonie. Używa curseslib, ale jest bardzo prosty w użyciu.
Przykład:
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')
Napisałem prosty moduł o nazwie colors.py, aby uczynić to nieco bardziej pythonowym:
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 Właściwie jest to jedyna strona, jaką udało mi się znaleźć na temat modułu "terminal". Proszę rozwinąć.
terminalmoduł, ale przekierowują stronę. Oto kod zapisany w pamięci podręcznej Google.
print '\033[1m Your Name \033[0m'
\ 033 [1m to Unicode dla pogrubienia w terminalu \ 033 [0m to Unicode dla końca edytowanego tekstu i powrotu do domyślnego formatu tekstu !!!!!
jeśli nie użyjesz \ 033 [0m, to cały nadchodzący tekst terminala będzie pogrubiony !!!!!!!!!
Zainstaluj termcolormoduł
sudo pip install termcolor
a następnie spróbuj tego w przypadku kolorowego tekstu
from termcolor import colored
print colored('Hello', 'green')
lub to dla pogrubionego tekstu:
from termcolor import colored
print colored('Hello', attrs=['bold'])
W Pythonie 3 możesz alternatywnie użyć cprintjako zamiennika wbudowanego print, z opcjonalnym drugim parametrem dla kolorów lub attrsparametrem dla pogrubienia (i innych atrybutów, takich jak underline) oprócz normalnych nazwanych printargumentów, takich jak filelub end.
import sys
from termcolor import cprint
cprint('Hello', 'green', attrs=['bold'], file=sys.stderr)
Pełne ujawnienie, ta odpowiedź jest w dużej mierze oparta na odpowiedzi Olu Smitha i była pomyślana jako zmiana , która znacznie zmniejszyłaby szum na tej stronie, ale z powodu błędnej koncepcji niektórych recenzentów na temat tego, czym powinna być zmiana, jestem teraz zmuszony żeby to była osobna odpowiedź.
Niektóre terminale pozwalają na drukowanie kolorowego tekstu. Niektóre kolory wyglądają jak „odważne”. Próbować:
print ('\033[1;37mciao!')
Sekwencja '\ 033 [1; 37m' sprawia, że niektóre terminale rozpoczynają drukowanie w „jasnej bieli”, która może wyglądać trochę jak pogrubiona biel. '\ 033 [0; 0m' wyłączy go.
Zakładając, że naprawdę masz na myśli „drukuj” na prawdziwym terminalu drukującym:
>>> 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'
Po prostu wyślij to na swój adres stdout.
W Pythonie 3 możesz użyć colorama - simple_colors: (Strona Simple Colors: https://pypi.org/project/simple-colors/ - przejdź do nagłówka „Użycie”). Zanim wykonasz poniższe czynności, upewnij się, że pip install simple_colours.
from simple_colors import *
print(green('hello', 'bold'))
pip install simple_colors