Как напечатать жирный текст в Python?
Например:
print "hello"
Что мне делать, чтобы текст "привет" выделен жирным шрифтом?
Как напечатать жирный текст в Python?
Например:
print "hello"
Что мне делать, чтобы текст "привет" выделен жирным шрифтом?
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)
Используйте это:
print '\033[1m' + 'Hello'
И чтобы вернуться к нормальной жизни:
print '\033[0m'
Эта страница является хорошей ссылкой для печати в цветах и шрифтах. Перейдите в раздел "Установить графический режим:"
И обратите внимание, что это не будет работать во всех операционных системах, но вам не нужны никакие модули.
sudo pip install termcolor
а затем попробуйте это
from termcolor import colored
print colored('Hello', 'green')
и что это для меня
В прямом программировании компьютера нет такой вещи, как "печать жирного текста". Давайте немного подкрепляемся и понимаем, что ваш текст представляет собой строку байтов, а байты - это просто пучки бит. Для компьютера, здесь ваш "привет" текст, в binary.
0110100001100101011011000110110001101111
Каждый бит или ноль немного. Каждые восемь бит являются байтом. Каждый байт является в строке, подобной той, что находится в Python 2.x, одной буквенной/числовой/пунктуационной позиции (называемой символом). Так, например:
01101000 01100101 01101100 01101100 01101111
h e l l o
Компьютер переводит эти биты в буквы, но в традиционной строке (называемой строкой ASCII) ничего не выделяется жирным шрифтом. В строке Unicode, которая работает немного по-другому, компьютер может поддерживать символы международного языка, такие как китайские, но опять же нет ничего, что могло бы сказать, что какой-то текст выделен жирным шрифтом, а какой-то текст нет. Также нет явного шрифта, размера текста и т.д.
В случае печати HTML вы все равно выводите строку. Но компьютерная программа, считывающая эту строку (веб-браузер), запрограммирована так, чтобы интерпретировать текст типа this is <b>bold</b>
как "это жирный", когда он преобразует вашу строку букв в пиксели на экране. Если бы весь текст был WYSIWYG, потребность в HTML сама была бы смягчена - вы бы просто выделили текст в своем редакторе и смели вместо него, вместо того, чтобы печатать HTML.
Другие программы используют разные системы - многие ответы объясняют совершенно другую систему для печати жирного текста на терминалах. Я рад, что вы узнали, как делать то, что хотите, но в какой-то момент вам захочется понять, как работают строки и память.
Это зависит от того, используете ли вы linux/unix:
>>> start = "\033[1m"
>>> end = "\033[0;0m"
>>> print "The" + start + "text" + end + " is bold."
The text is bold.
Слово text
должно быть жирным.
Отъезд colorama. Это не обязательно помогает в смелости... но вы можете сделать раскрашенный вывод как на Windows, так и на Linux и контролировать яркость:
from colorama import *
init(autoreset=True)
print Fore.RED + 'some red text'
print Style.BRIGHT + Fore.RED + 'some bright red text'
Существует очень полезный модуль для форматирования текста (полужирный, подчеркивание, цвета..) в Python. Он использует curses
lib, но очень прост в использовании.
Пример:
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')
Я написал простой модуль с именем colors.py, чтобы сделать его немного более питоническим:
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")
print '\033[1m Your Name \033[0m'
\ 033 [1м - это юникод для жирного шрифта в терминале \ 033 [0m - это юникод для завершения отредактированного текста и форматирования текста по умолчанию !!!!!
если вы не используете \033 [0m, то весь следующий текст терминала станет жирным !!!!!!!!!
Предполагая, что вы действительно имеете в виду "печать" на реальном терминале печати:
>>> 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'
Просто отправьте это на ваш stdout
.
Некоторые терминалы позволяют печатать цветной текст. Некоторые цвета выглядят, если они "смелые". Попробуйте:
print ('\033[1;37mciao!')
Последовательность '\ 033 [1; 37m' заставляет некоторые терминалы запускать печать в "ярком белом", который может немного похож на полужирный белый. '\ 033 [0; 0m' отключит его.
Установите модуль termcolor
sudo pip install termcolor
а затем попробуйте это для цветного текста
from termcolor import colored
print colored('Hello', 'green')
или это для жирного текста:
from termcolor import colored
print colored('Hello', attrs=['bold'])
В Python 3 вы можете альтернативно использовать cprint
в качестве замены для встроенного print
, с необязательным вторым параметром для цветов или параметром attrs
для полужирного (и другими атрибутами, такими как underline
) в дополнение к обычным именованным аргументам print
, таким как file
или end
.
import sys
from termcolor import cprint
cprint('Hello', 'green', attrs=['bold'], file=sys.stderr)
Полное раскрытие, этот ответ в значительной степени основан на ответе Олу Смита и был задуман как edit, который уменьшил бы шум на этой странице значительно, но из-за ошибочной концепции некоторых рецензентов каким должно быть редактирование, теперь я вынужден сделать это отдельным ответом.