What should I do so that the text “hello” is displayed in bold?
回答 0
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)
在打印HTML的情况下,您仍在输出字符串。但是,读取该字符串的计算机程序(Web浏览器)被编程为在将您的字母字符串转换为屏幕上的像素时将文本解释this is <b>bold</b>为“ this is bold ”。如果所有文本都是“所见即所得”,那么HTML本身的需求将得到缓解-您只需在编辑器中选择文本并将其加粗即可,而不用键入HTML。
In straight-up computer programming, there is no such thing as “printing bold text”. Let’s back up a bit and understand that your text is a string of bytes and bytes are just bundles of bits. To the computer, here’s your “hello” text, in binary.
0110100001100101011011000110110001101111
Each one or zero is a bit. Every eight bits is a byte. Every byte is, in a string like that in Python 2.x, one letter/number/punctuation item (called a character). So for example:
01101000 01100101 01101100 01101100 01101111
h e l l o
The computer translates those bits into letters, but in a traditional string (called an ASCII string), there is nothing to indicate bold text. In a Unicode string, which works a little differently, the computer can support international language characters, like Chinese ones, but again, there’s nothing to say that some text is bold and some text is not. There’s also no explicit font, text size, etc.
In the case of printing HTML, you’re still outputting a string. But the computer program reading that string (a web browser) is programmed to interpret text like this is <b>bold</b> as “this is bold” when it converts your string of letters into pixels on the screen. If all text were WYSIWYG, the need for HTML itself would be mitigated — you would just select text in your editor and bold it instead of typing out the HTML.
Other programs use different systems — a lot of answers explained a completely different system for printing bold text on terminals. I’m glad you found out how to do what you want to do, but at some point, you’ll want to understand how strings and memory work.
回答 4
这取决于您使用的是linux / unix:
>>> start ="\033[1m">>> end ="\033[0;0m">>>print"The"+ start +"text"+ end +" is bold."The text is bold.
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')
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")
There is a very useful module for formatting text (bold, underline, colors..) in Python. It uses curses lib but it’s very straight-forward to use.
An example:
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')
UPDATED:
I wrote a simple module named colors.py to make this a little more pythonic:
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")
from termcolor import colored
print colored('Hello', 'green')
or this for bold text:
from termcolor import colored
print colored('Hello', attrs=['bold'])
In Python 3 you can alternatively use cprint as a drop-in replacement for the built-in print, with the optional second parameter for colors or the attrs parameter for bold (and other attributes such as underline) in addition to the normal named print arguments such as file or end.
import sys
from termcolor import cprint
cprint('Hello', 'green', attrs=['bold'], file=sys.stderr)
Full disclosure, this answer is heavily based on Olu Smith’s answer
and was intended as an edit, which would have reduced the noise on this page
considerably but because of some reviewers’ misguided concept of
what an edit is supposed to be, I am now forced to make this a separate answer.
Some terminals allow to print colored text. Some colors look like if they are “bold”. Try:
print ('\033[1;37mciao!')
The sequence ‘\033[1;37m’ makes some terminals to start printing in “bright white” that may look a bit like bolded white. ‘\033[0;0m’ will turn it off.
回答 10
假设你真的一上就可以“打印” 真正的打印终端:
>>> text ='foo bar\r\noof\trab\r\n'>>>''.join(s if i &1else(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'
Assuming that you really mean “print” on a real printing terminal:
>>> 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'
In python 3 you could use colorama – simple_colors:
(Simple Colours page: https://pypi.org/project/simple-colors/ – go to the heading ‘Usage’.) Before you do what is below, make sure you pip install simple_colours.
from simple_colors import *
print(green('hello', 'bold'))