E.g:
print "hello"
我该怎么做才能将“hello”文本加粗?
E.g:
print "hello"
我该怎么做才能将“hello”文本加粗?
当前回答
Python中有一个非常有用的模块用于格式化文本(粗体、下划线、颜色等)。它使用curses库,但是使用起来非常简单。
一个例子:
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的简单模块,让它更python化一些:
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")
其他回答
在直接的计算机编程中,没有“打印粗体文本”这样的事情。让我们后退一点,理解你的文本是一串字节,字节只是一捆比特。对电脑来说,这是你的“你好”文本,二进制的。
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。
其他程序使用不同的系统——许多答案解释了在终端上打印粗体文本的完全不同的系统。我很高兴你找到了如何做你想做的事情,但在某些时候,你会想要了解字符串和内存是如何工作的。
这取决于你使用的是Linux还是Unix:
>>> start = "\033[1m"
>>> end = "\033[0;0m"
>>> print "The" + start + "text" + end + " is bold."
The text is bold.
“text”这个词应该加粗。
你可以使用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。
def say(text: str):
print ("\033[1;37m" + text)
say("Hello, world!")
我的代码工作正常。
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)