Python 如何让打印内容变得优雅(颜色打印)

Python 如何让打印内容变得优雅(颜色打印)

文章目录

  • Python 如何让打印内容变得优雅(颜色打印)
    • 前言
    • 书写格式
    • 格式表
      • 对照表
      • 常见开头格式
    • 字体颜色更改
    • 字体底纹更改
    • 字体颜色+底纹更改
    • 为什么加结尾
    • 使用小技巧

前言

直接的print()打印输出的字体样式是大家最熟悉不过的,但有没有什么办法可以更改颜色等样式呢?答案是肯定的,我们能通过增加一部分代码来更改打印输出的样式,这样不仅能将打印输出的内容优雅的展示在控制台上,还能更好的区分打印的结果是哪段程序控制的。
Python 如何让打印内容变得优雅(颜色打印)_第1张图片

书写格式

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")

显示效果

Python 如何让打印内容变得优雅(颜色打印)_第2张图片

字体底纹更改

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")

显示效果

由于没有添加字体颜色,直接指定底纹色后会默认以白色作为字体颜色,等同于\033[1;30;40m
Python 如何让打印内容变得优雅(颜色打印)_第3张图片

字体颜色+底纹更改

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")

显示效果

Python 如何让打印内容变得优雅(颜色打印)_第4张图片

为什么加结尾

至于为什么要加结尾,这个理由也很简单,开头部分:\033[显示方式;前景色;背景色m将输出样式更改,但更改后的样式可不会在下次自己改回去,我们在打印输出完后如果不加上结尾部分:\033[0m,就会出现下面的情况

print("\033[1;32m日照香炉生紫烟,")
print("遥看瀑布挂前川。")
print("飞流直下三千尺,")
print("疑是银河落九天。")
print("\033[0m")

原本只是想第一句日照香炉生紫烟变换颜色,结果下面打印的内容都变换了颜色
Python 如何让打印内容变得优雅(颜色打印)_第5张图片
当然如果是故意这样就另当别论,可一般来说,在变换完打印样式之后都会把结尾加上

使用小技巧

一般来说每打印输出内容总是要敲\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("颜色样式打印输出功能")

显示效果
显示效果五

你可能感兴趣的:(python)