直接的print()打印输出的字体样式是大家最熟悉不过的,但有没有什么办法可以更改颜色等样式呢?答案是肯定的,我们能通过增加一部分代码来更改打印输出的样式,这样不仅能将打印输出的内容优雅的展示在控制台上,还能更好的区分打印的结果是哪段程序控制的。
print(\033[显示方式;前景色;背景色m + 打印内容 + 结尾部分:\033[0m)
显示模式
显示方式 | 效果 | 效果展示 |
---|---|---|
0 | 终端默认设置 | |
1 | 高亮显示 | |
4 | 使用下划线 | |
5 | 闪烁 | |
7 | 反白显示 | |
8 | 不可见 |
显示颜色
字体色 | 背景色 | 颜色描述 |
---|---|---|
30 | 40 | 白色 |
31 | 41 | 红色 |
32 | 42 | 绿色 |
33 | 43 | 黃色 |
34 | 44 | 蓝色 |
35 | 45 | 紫红色 |
36 | 46 | 青蓝色 |
37 | 47 | 黑色 |
开头格式 | 格式描述 |
---|---|
\033[0m | 默认字体正常显示,不高亮,等同于平时直接print()的输出样式 |
\033[1;32m | 绿色字体无底纹高亮显示 |
\033[1;32;47m | 绿色字体白色底纹高亮显示 |
\033[1;31;46m | 红色字体青蓝色底纹高亮显示 |
\033[4;32m | 使用下划线绿色字体无底纹显示 |
\033[4;32;47m | 使用下划线绿色字体白色底纹显示 |
print("\033[1;30m日照香炉生紫烟,遥看瀑布挂前川\033[0m")
print("\033[1;31m日照香炉生紫烟,遥看瀑布挂前川\033[0m")
print("\033[1;32m日照香炉生紫烟,遥看瀑布挂前川\033[0m")
print("\033[1;33m日照香炉生紫烟,遥看瀑布挂前川\033[0m")
print("\033[1;34m日照香炉生紫烟,遥看瀑布挂前川\033[0m")
print("\033[1;35m日照香炉生紫烟,遥看瀑布挂前川\033[0m")
print("\033[1;36m日照香炉生紫烟,遥看瀑布挂前川\033[0m")
print("\033[1;37m日照香炉生紫烟,遥看瀑布挂前川\033[0m")
显示效果
print("\033[1;40m一代天骄,成吉思汗,只识弯弓射大雕\033[0m")
print("\033[1;41m一代天骄,成吉思汗,只识弯弓射大雕\033[0m")
print("\033[1;42m一代天骄,成吉思汗,只识弯弓射大雕\033[0m")
print("\033[1;43m一代天骄,成吉思汗,只识弯弓射大雕\033[0m")
print("\033[1;44m一代天骄,成吉思汗,只识弯弓射大雕\033[0m")
print("\033[1;45m一代天骄,成吉思汗,只识弯弓射大雕\033[0m")
print("\033[1;46m一代天骄,成吉思汗,只识弯弓射大雕\033[0m")
print("\033[1;47m一代天骄,成吉思汗,只识弯弓射大雕\033[0m")
显示效果
print("\033[1;31;40m一代天骄,成吉思汗,只识弯弓射大雕\033[0m")
print("\033[1;31;41m一代天骄,成吉思汗,只识弯弓射大雕\033[0m")
print("\033[1;31;42m一代天骄,成吉思汗,只识弯弓射大雕\033[0m")
print("\033[1;31;43m一代天骄,成吉思汗,只识弯弓射大雕\033[0m")
print("\033[1;31;44m一代天骄,成吉思汗,只识弯弓射大雕\033[0m")
print("\033[1;31;45m一代天骄,成吉思汗,只识弯弓射大雕\033[0m")
print("\033[1;31;46m一代天骄,成吉思汗,只识弯弓射大雕\033[0m")
print("\033[1;31;47m一代天骄,成吉思汗,只识弯弓射大雕\033[0m")
显示效果
至于为什么要加结尾,这个理由也很简单,开头部分:\033[显示方式;前景色;背景色m将输出样式更改,但更改后的样式可不会在下次自己改回去,我们在打印输出完后如果不加上结尾部分:\033[0m,就会出现下面的情况
print("\033[1;32m日照香炉生紫烟,")
print("遥看瀑布挂前川。")
print("飞流直下三千尺,")
print("疑是银河落九天。")
print("\033[0m")
原本只是想第一句日照香炉生紫烟变换颜色,结果下面打印的内容都变换了颜色
当然如果是故意这样就另当别论,可一般来说,在变换完打印样式之后都会把结尾加上
一般来说每打印输出内容总是要敲\033…的格式非常麻烦,有没有什么方法只用敲一次输出格式也能在不同地方的代码打印也用上呢?很简单,写在函数里定义这个功能就行了。
def print_c(data, color=32):
"""
颜色样式打印输出功能
:param data: 打印内容
:param color: 指定颜色, 默认为绿色(32)
:return:
"""
if isinstance(color, int):
color = str(color)
print(f"\033[1;{color}m{data}\033[0m")
print_c("颜色样式打印输出功能")