# Python输出文字改变颜色的方法
\033[显示方式; 前景色; 背景色m******\033[0m
显示方式、前景色、背景色都为可选参数,选择自己需要的即可,而且顺序可变非固定,但建议按照默认顺序书写。
注:可添加在prince()
的输出以及input()
的提示性输出中使用
print("\033[31m这是红色字体\033[0m")
print("\033[32m这是绿色字体\033[0m")
print("\033[33m这是黄色字体\033[0m")
print("\033[34m这是蓝色字体\033[0m")
print("\033[38m这是默认字体\033[0m") # 大于37将显示默认字体
程序运行结果
前景色 | 背景色 | 颜色说明 | 具体颜色 |
---|---|---|---|
30 | 40 | 白色 | ![]() |
31 | 41 | 红色 | ![]() |
32 | 42 | 绿色 | ![]() |
33 | 43 | 黄色 | ![]() |
34 | 44 | 蓝色 | ![]() |
35 | 45 | 紫红色 | ![]() |
36 | 46 | 青蓝色 | ![]() |
37 | 47 | 黑色 | ![]() |
特别注意:表格中的黑色与白色相对于控制台的颜色变换,如果控制台为黑色,30与40的颜色就为白色,否则就为黑色。简而言之37与47的颜色与控制台颜色一致,30与40的颜色与控制台颜色相反。
显示方式 | 显示效果 |
---|---|
0 | 默认值 |
1 | 高亮 |
4 | 下划线 |
5 | 闪烁 |
7 | 反显 |
8 | 不可见 |
注:语句最后加\033[0m
为恢复默认,否则下面的输出字体都会被影响,举例如下:
print("\033[31m这是未恢复默认的例子")
print("程序运行开始")
print("程序运行结束")
程序运行结果
总结,该种方法使用方便,只需添加注释即可改变文字显示颜色及方式,但是参数过多,记忆容易出现偏差,而且,该种方法只限于控制台的输出改变颜色,不适用于生成的EXE文件的输出。下面介绍一种不需要记忆参数而且可适用于EXE文件输出的方法。
Python的Colorama
模块,可以跨多终端,显示字体不同的颜色和背景,只需要导入colorama
模块即可,不用再每次都像上方注释性语句一样记忆过多的参数;
pip install colorama
Fore: BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET.
Back: BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET.
Style: DIM, NORMAL, BRIGHT, RESET_ALL
各个颜色都与英文对应,使用时颜色必须要大写,先指定是颜色和样式是针对字体还是字体背景,然后再添加颜色,颜色就是英文单词指定的颜色,具体举例如下:
from colorama import Fore, Back, Style
print(Fore.RED + 'some red text')
print(Back.GREEN + 'and with a green background')
print(Style.DIM + 'and in dim text')
print(Style.RESET_ALL)
print('back to normal now')
程序运行结果:
我们可以发现,在设置字体为红色之后,下面的输出并未设置字体颜色,但还是输出了红色。直到设置了Style.RESET_ALL
才恢复默认。
当然也有自动恢复的方法可以调用,那就是init(autoreset = True)
,具体使用如下:
from colorama import Fore, Back, Style, init
init(autoreset=True)
print(Fore.RED + 'some red text')
print(Back.GREEN + 'and with a green background')
print(Style.DIM + 'and in dim text')
print(Style.RESET_ALL)
print('back to normal now')
程序运行结果:
可以看到与上图的运行结果已经截然不同了,每一行都只是改变了当前行设置的一个颜色参数。
当然,该方法也同样适用于inpu()
的提示性输出中,但值得一提的是,生成EXE文件在window中运行时,input()
中使用的该方法就失效了,如有知道该怎么解决欢迎指导。
更多具体使用情况可以参考官方文档:colorama