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

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

前言

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

书写格式

print(\033[显示方式;前景色;背景色m + 打印内容 + 结尾部分:\033[0m)

格式表

对照表

显示模式

显示方式效果效果展示
0终端默认设置默认值
1高亮显示高亮
4使用下划线下划线
5闪烁闪烁
7反白显示反显
8不可见不可见

显示颜色

字体色背景色颜色描述
3040黑色
3141红色
3242绿色
3343黃色
3444蓝色
3545紫红色
3646青蓝色
3747灰色
3838白色

常见开头格式

开头格式格式描述
\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")

显示效果

由于没有添加字体颜色,直接指定底纹色后会默认以白色作为字体颜色,等同于\033[1;30;40m
显示效果二

字体颜色+底纹更改

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("颜色样式打印输出功能")

显示效果
显示效果五

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值