专业编程基础技术教程

网站首页 > 基础教程 正文

Python输出有颜色的字符

ccvgpt 2024-08-14 15:28:00 基础教程 52 ℃

偶然在网上看到一段代码,可以使Python输出带颜色的文字,后来发现这不是Python特有的,而是终端的特性,其他编程语言也可以使用相同的方法输出彩色文字。

print('\x1b[31mapple')
print('\x1b[34morange')
print('\x1b[32mpear')

后来发现颜色跟代码里面数字有关系,31代表红色,32代表绿色,35代表蓝色,文字颜色范围从30到37,下面是全部数字代表的颜色。

Python输出有颜色的字符

30: 黑
31: 红
32: 绿
33: 黄
34: 蓝
35: 紫
36: 深绿
37: 白色

再后来发现,其实完整代码应该是这样的:

print('\033[1;32;40m这里是需要显示的文字\033[0m')

  颜色的控制通过ESC字符(\033)加”[“加颜色代码加”m”实现。ESC的ASCII码是十进制的27,八进制的033(\033),十六进制的1b(\x1b)。所以下面的代码也是可以的:

print('\033[1;32;40m这里是需要显示的文字\033[0m')
print('\x1b[1;32;40m这里是需要显示的文字\x1b[0m')
# 混用也是可以的,Python中只有\0\x两种转义数字,所以不能用十进制的27
print('\x1b[1;32;40m这里是需要显示的文字\033[0m')
# 里面的文字样式,可以只设置一种
print('\033[4m这里是需要显示的文字\033[0m') #文字显示下划线
print('\033[31m这里是需要显示的文字\033[0m') #显示红色文字
print('\033[42m这里是需要显示的文字\033[0m') #显示绿色背景

  代码具体含义按顺序如下:

  1. “\033”声明了转义序列的开始,
  2. “[”开始定义颜色。
  3. “1”定义了高亮显示字符,具体如下
  4. “32”,表示前景颜色为绿色
  5. “40”,表示黑色背景
  6. “m”,这个m不能忘了
  7. 这里是你要显示的带颜色的文字
  8. “\033[0m”关闭转义序列
第三条的数字代表的意思:
0 终端默认设置(黑底白字)
1 高亮显示
4 使用下划线
5 闪烁
7 反白显示
8 不可见

完整颜色信息及含义如下:

颜色列表如下:  
none         = "\033[0m"
black        = "\033[0;30m"
dark_gray    = "\033[1;30m"
blue         = "\033[0;34m"
light_blue   = "\033[1;34m"
green        = "\033[0;32m"
light_green -= "\033[1;32m"
cyan         = "\033[0;36m"  
light_cyan   = "\033[1;36m"  
red          = "\033[0;31m"  
light_red    = "\033[1;31m"  
purple       = "\033[0;35m"  
light_purple = "\033[1;35m"  
brown        = "\033[0;33m"  
yellow       = "\033[1;33m"  
light_gray   = "\033[0;37m"  
white        = "\033[1;37m"  

背景颜色范围:40-47               文字颜色: 30-37
40:黑                          30: 黑  
41:红                          31: 红  
42:绿                          32: 绿  
43:黄                          33: 黄  
44:蓝                          34: 蓝  
45:紫                          35: 紫  
46:深绿                        36: 深绿  
47:白色                        37: 白色  

输出特效格式控制:
\033[0m   关闭所有属性
\033[1m   设置高亮度
\033[4m   下划线
\033[5m   闪烁
\033[7m   反显
\033[8m   消隐
\033[30m   --   \033[37m   设置前景色
\033[40m   --   \033[47m   设置背景色

光标位置等的格式控制:
\033[nA  光标上移n行
\033[nB   光标下移n行
\033[nC   光标右移n行
\033[nD   光标左移n行
\033[y;xH 设置光标位置
\033[2J   清屏
\033[K   清除从光标到行尾的内容
\033[s   保存光标位置
\033[u   恢复光标位置
\033[?25l   隐藏光标
\033[?25h   显示光标

最近发表
标签列表