E.g:
print "hello"
我该怎么做才能将“hello”文本加粗?
E.g:
print "hello"
我该怎么做才能将“hello”文本加粗?
当前回答
你可以使用termcolor来表示:
sudo pip install termcolor
打印彩色粗体:
from termcolor import colored
print(colored('Hello', 'green', attrs=['bold']))
有关更多信息,请参阅PyPi上的termcolor。
Simple-colors是另一个具有类似语法的包:
from simple_colors import *
print(green('Hello', ['bold'])
在colorama中对应的可能是Style.BRIGHT。
其他回答
安装termcolor模块
sudo pip install termcolor
然后对彩色文本试试这个
from termcolor import colored
print colored('Hello', 'green')
对于粗体文本:
from termcolor import colored
print colored('Hello', attrs=['bold'])
在Python 3中,除了常规的命名打印参数(如file或end)外,您还可以使用cprint作为内置打印的下拉替换,使用可选的第二个参数表示颜色或attrs参数表示粗体(以及其他属性,如下划线)。
import sys
from termcolor import cprint
cprint('Hello', 'green', attrs=['bold'], file=sys.stderr)
完全披露,这个答案很大程度上是基于奥卢·史密斯的答案 本来是想编辑一下,这样可以减少本页的噪音 相当多,但因为一些评论家的错误概念 编辑应该是什么样子,我现在不得不把这作为一个单独的答案。
看看Colorama。它不一定对加粗有帮助……但是你可以在Windows和Linux上进行彩色输出,并控制亮度:
from colorama import *
init(autoreset=True)
print Fore.RED + 'some red text'
print Style.BRIGHT + Fore.RED + 'some bright red text'
假设你指的是真正的打印终端上的“打印”:
>>> 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。
在直接的计算机编程中,没有“打印粗体文本”这样的事情。让我们后退一点,理解你的文本是一串字节,字节只是一捆比特。对电脑来说,这是你的“你好”文本,二进制的。
0110100001100101011011000110110001101111
每一个1或0都是位。每八位就是一个字节。在Python 2中,每个字节都是这样的字符串。X,一个字母/数字/标点符号项目(称为字符)。例如:
01101000 01100101 01101100 01101100 01101111
h e l l o
计算机将这些比特转换成字母,但在传统的字符串(称为ASCII字符串)中,没有任何东西表示粗体文本。在Unicode字符串中,它的工作方式有点不同,计算机可以支持国际语言字符,比如中文字符,但同样,没有什么说有些文本是粗体,有些文本不是。它也没有明确的字体、文本大小等。
在打印HTML的情况下,输出的仍然是字符串。但是读取该字符串的计算机程序(web浏览器)在将字符串转换为屏幕上的像素时,会将<b>bold</b>这样的文本解释为“this is bold”。如果所有文本都是所见即所得,那么对HTML本身的需求就会减少——您只需在编辑器中选择文本并加粗,而不是输入HTML。
其他程序使用不同的系统——许多答案解释了在终端上打印粗体文本的完全不同的系统。我很高兴你找到了如何做你想做的事情,但在某些时候,你会想要了解字符串和内存是如何工作的。
有一种叫做转义序列的东西,用来表示键盘上不可用的字符。它可以用于格式化文本(在本例中为粗体字母格式),用特定的ASCII码表示特殊字符,以及表示Unicode字符。
在Python中,转义序列由反斜杠\后面跟着一个或多个字符表示。例如,转义序列\n表示换行符,转义序列\t表示制表符。
在这里使用\033[1m在你想用粗体表示的文本之前和之后格式化文本。
的例子,
print("这一行代表了\033[1mescape序列\033[0m.")
在转义序列\033[1m]中,1启用粗体文本,而m是设置文本格式的命令。\033[0m转义序列将文本格式重置为默认设置。
在\033[1m]转义序列之后使用\033[0m]转义序列来关闭粗体文本并返回默认文本格式。这是必要的,因为\033[1m转义序列只启用粗体文本,它不会禁用它。