ANSI 颜色转义序列列表
本帖最后由 傻眼貓咪 于 2021-12-19 16:27 编辑圣诞节即将到来,来颗圣诞树吧:
import random
height = 11
for i in range(height):
print(' ' * (height - i), end = '')
for j in range((2 * i) + 1):
if random.random() < 0.1:
color = random.choice(['\033)
print(color, end = '')
else:
print('\033[32m', end = '')
print('*', end = '')
print()
print((' ' * height) + '|')
说真的,其实这个根本没有什么用处的知识{:10_291:} ,但是这里既然是技术交流区,稍微分享一下知识吧。
对于代码中的 '\033[1;31m' 或 '\033[1;34m' ,这里我就一一说明吧。
其实这串字符是终端字体设定输出,并非 Python 专有功能,一些其它平台如 C/C++ 或 Bash 也能使用(注:不是全部都能用,必须能够解译 ANSI 编码,才能正常运用,这里我就不说明了)
对于以上我的代码,我使用 ANSI 颜色转义法输出字符
其构造为:
\033[XXXm 你的字符串 \033[XXXm
\033 为八进制的 27,ASCII 编码 27 是 ESC 控制符 ,\033[ 作为 ANSI 颜色转义序列符。
XXX 为一系列用分号分隔的参数,比如:31;1;4 或 38;5;206;48;5;57 等等。
m 为参数输入结束符。
**分前端和后端 \033[XXXm,前端为改变字符串颜色/样式编码,后端为恢复初始颜色/样式编码(如:\033[0m,0 为初始化)
作为参数可以分成几种形态:
1.)颜色效果(1 - 2 为颜色效果)
\033[0m 初始化
\033[1m 亮 \033[0m
\033[2m 暗 \033[0m
2.)字体效果(3 - 9 为字体效果)
\033[3m 斜体 \033[0m
\033[4m 下划线 \033[0m
\033[5m 闪烁(慢) \033[0m
\033[6m 闪烁(快)\033[0m
\033[7m 反显 \033[0m
\033[8m 消隐 \033[0m
\033[9m 淡出 \033[0m
3.)颜色(前景/字体色 和 背景色)
2 位颜色
系统本来就是 2 位颜色(通常为黑底白字)
3/4 位颜色(只有 1 个参数值)
编码:30 - 37 为前景色
\033[30m 黑色 \033[0m
\033[31m 红色 \033[0m
\033[32m 绿色 \033[0m
\033[33m 黄色 \033[0m
\033[34m 蓝色 \033[0m
\033[35m 紫色 \033[0m
\033[36m 青色 \033[0m
\033[37m 白色 \033[0m
编码:40- 47 为背景色
\033[40m 黑色 \033[0m
\033[41m 红色 \033[0m
\033[42m 绿色 \033[0m
\033[43m 黄色 \033[0m
\033[44m 蓝色 \033[0m
\033[45m 紫色 \033[0m
\033[46m 青色 \033[0m
\033[47m 白色 \033[0m
** 对于以上的前景色和背景色,可以合在一起,如:背景色为黄色、前景色为红色 = \033[31;43m 红色 \033[0m
8 位颜色(256 个颜色)
前景颜色编码:\033[38;5;XXXm(XXX 为 0 至 255)
背景颜色编码:\033[48;5;XXXm(XXX 为 0 至 255)
下图为 0 至 255 对应颜色表:
比如:编码:\033[38;5;144m 字符串 \033[0m
24 位颜色,编码:
前景颜色编码:\033[38;2;rrr;ggg;bbbm(rrr/ggg/bbb 为 0 至 255,对应三色 RGB 编码)
背景颜色编码:\033[48;2;rrr;ggg;bbbm(rrr/ggg/bbb 为 0 至 255,对应三色 RGB 编码)
页:
[1]