如何在Python中打印粗体文本?
例如:
print "hello"
Run Code Online (Sandbox Code Playgroud)
我应该怎么做才能使文本"hello"以粗体显示?
小智 287
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)
Run Code Online (Sandbox Code Playgroud)
Add*_*son 48
用这个:
print '\033[1m' + 'Hello'
Run Code Online (Sandbox Code Playgroud)
并恢复正常:
print '\033[0m'
Run Code Online (Sandbox Code Playgroud)
此页面是用于打印颜色和字体粗细的良好参考.转到"设置图形模式:"部分
请注意,这不适用于所有操作系统,但您不需要任何模块.
Olu*_*ith 22
sudo pip install termcolor
Run Code Online (Sandbox Code Playgroud)
然后尝试这个
from termcolor import colored
print colored('Hello', 'green')
Run Code Online (Sandbox Code Playgroud)
这就是我的意思
Ken*_*der 21
在直接计算机编程中,没有"打印粗体文本"这样的东西.让我们稍微回顾一下,理解你的文本是一串字节,字节只是一堆比特.对于计算机,这是你的"你好"文本,二进制文件.
0110100001100101011011000110110001101111
Run Code Online (Sandbox Code Playgroud)
每一个或零都有点.每八位是一个字节.每个字节在Python 2.x中的字符串中都是一个字母/数字/标点符号项(称为字符).例如:
01101000 01100101 01101100 01101100 01101111
h e l l o
Run Code Online (Sandbox Code Playgroud)
计算机将这些位转换为字母,但在传统的字符串(称为ASCII字符串)中,没有任何内容可以指示粗体文本.在一个有点不同的Unicode字符串中,计算机可以支持国际语言字符,就像中文字符一样,但是,没有什么可以说某些文本是粗体而某些文本不是.还没有明确的字体,文字大小等.
在打印HTML的情况下,您仍在输出字符串.但是,读取该字符串(网络浏览器)的计算机程序被编程为在将您的字母串转换为屏幕上的像素时将文本解释this is <b>bold</b>为"这是粗体 ".如果所有文本都是WYSIWYG,则可以减轻对HTML本身的需求 - 您只需在编辑器中选择文本并加粗,而不是输入HTML.
其他程序使用不同的系统 - 许多答案解释了一个完全不同的系统,用于在终端上打印粗体文本.我很高兴你发现了如何做你想做的事情,但在某些时候,你会想要理解字符串和记忆是如何工作的.
aay*_*ubi 12
这取决于你是否使用linux/unix:
>>> start = "\033[1m"
>>> end = "\033[0;0m"
>>> print "The" + start + "text" + end + " is bold."
The text is bold.
Run Code Online (Sandbox Code Playgroud)
这个词text应该是大胆的.
Joh*_*ter 11
检查colorama.它不一定有助于粗体...但你可以在Windows和Linux上进行彩色输出,并控制亮度:
from colorama import *
init(autoreset=True)
print Fore.RED + 'some red text'
print Style.BRIGHT + Fore.RED + 'some bright red text'
Run Code Online (Sandbox Code Playgroud)
小智 11
print '\033[1m Your Name \033[0m'
Run Code Online (Sandbox Code Playgroud)
\ 033 [1m是终端中粗体的unicode\033 [0m是用于结束编辑文本和返回默认文本格式的unicode !!!!!
如果你不使用\ 033 [0m比终端的所有即将发送的文字都会变得大胆!!!!!!!!!
Die*_*rro 10
在Python中有一个非常有用的模块用于格式化文本(粗体,下划线,颜色......).它使用curseslib但它非常直接使用.
一个例子:
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')
Run Code Online (Sandbox Code Playgroud)
我写了一个名为colors.py的简单模块,使其更加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")
Run Code Online (Sandbox Code Playgroud)
安装termcolor模块
sudo pip install termcolor
Run Code Online (Sandbox Code Playgroud)
然后试试这个彩色文本
from termcolor import colored
print colored('Hello', 'green')
Run Code Online (Sandbox Code Playgroud)
或者这对于粗体文本:
from termcolor import colored
print colored('Hello', attrs=['bold'])
Run Code Online (Sandbox Code Playgroud)
在Python 3您也可以使用cprint作为一个下拉更换为内置的print,与颜色的可选的第二个参数或attrs粗体(和其他属性,诸如参数underline,除了正常的命名)print参数,例如file或end。
import sys
from termcolor import cprint
cprint('Hello', 'green', attrs=['bold'], file=sys.stderr)
Run Code Online (Sandbox Code Playgroud)
完全公开,这个答案在很大程度上基于Olu Smith 的答案, 并且旨在作为编辑,这会大大减少此页面上的噪音,但由于一些审阅者对编辑应该是什么的误导性概念,我现在被迫使其成为一个单独的答案。
一种简单的方法依赖于 Unicode数学字母数字符号。
\ndef bold(\n text,\n trans=str.maketrans(\n "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",\n "",\n ),\n):\n return text.translate(trans)\nRun Code Online (Sandbox Code Playgroud)\nassert bold("Hello world") == " "\nRun Code Online (Sandbox Code Playgroud)\n我能想到的几个优点和缺点。请随意在评论中添加您的内容。
\n优点:
\nDropdown。缺点:
\n\'\'.isalpha()仍然是True。BOLD_TRANS常量,或使用闭包或轻量级类。