python输出彩色字体

本文介绍如何使用Python在终端输出带有颜色和显示样式的文本。通过使用特定的转义序列,可以实现字体颜色、背景颜色及多种显示效果的设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python终端如何输出彩色字体

实现过程:
      终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关。
      转义序列是以ESC开头,即用\033来完成(ESC的ASCII码用十进制表示是27,用八进制表示就是033)。
 
书写格式:
     开头部分\033[显示方式;前景色;背景色m + 结尾部分:\033[0m
     注意:开头部分的三个参数:显示方式,前景色,背景色是可选参数,可以只写其中的某一个;另外由于表示三个参数不同含义的数值都是唯一的没有重复的,所以三个参数的书写先后顺序没有固定要求,系统都能识别;但是,建议按照默认的格式规范书写。
     对于结尾部分,其实也可以省略,但是为了书写规范,建议\033[***开头,\033[0m结尾。
 
数值表示的参数含义:
显示方式: 0(默认值)、1(高亮)、22(非粗体)、4(下划线)、24(非下划线)、 5(闪烁)、25(非闪烁)、7(反显)、27(非反显)
前景色: 30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(蓝色)、35(洋 红)、36(青色)、37(白色)
背景色: 40(黑色)、41(红色)、42(绿色)、 43(黄色)、44(蓝色)、45(洋 红)、46(青色)、47(白色)

常见开头格式
\033[0m            默认字体正常显示,不高亮
\033[32;0m       红色字体正常显示
\033[1;32;40m  显示方式: 高亮    字体前景色:绿色  背景色:黑色
\033[0;31;46m  显示方式: 正常    字体前景色:红色  背景色:青色
 
实例:
  (1)print("\033[1;31;40m您输入的帐号或密码错误!\033[0m")  
  上方代码的输出格式为:字体高亮,红色前景,黄色背景      PS:前景色也就是字体的颜色
  
  (2)print("\033[0;31m%s\033[0m" % "输出红色字符")
  #上方代码的输出格式为:字体默认,红色前景
  
### Python 中更改控制台输出文本颜色 在 Python 控制台中,可以通过 ANSI 转义序列来改变输出文本的颜色和其他样式。ANSI 转义序列是一种用于终端的命令集,可以用来设置字体颜色、背景色以及其他显示属性。 #### 使用 ANSI 转义序列 转义序列通常以 `\033[` 开始,后面跟着一系列参数,最后以字母 `m` 结束。为了重置所有属性并返默认设置,可以在字符串结尾处加上 `\033[0m`[^1]。 以下是几个常见的例子: ```python print("\033[0m这是正常文本\033[0m") print("\033[1;31;40m红色加粗文字\033[0m") print("\033[4;32;40m绿色下划线文字\033[0m") print("\033[5;33;40m黄色闪烁文字\033[0m") print("\033[7;34;40m蓝色反显文字\033[0m") ``` 每条指令中的数字代表不同的效果: - 显示方式 (`1`= 加粗, `4`= 下划线, `5`= 闪烁, `7`= 反显) - 前景色 (例如 `31`= 红色, `32`= 绿色, `33`= 黄色...) - 背景色 (例如 `40`= 黑色, `41`= 红色...) #### 定义函数简化操作 为了避免每次都要手动输入复杂的转义序列,可以定义一些辅助函数来简化这个过程: ```python def colored(text, color=None, background=None, style=None): styles = { 'bold': '1', 'underline': '4', 'blink': '5', 'reverse': '7' } colors = { 'black': '30', 'red': '31', 'green': '32', 'yellow': '33', 'blue': '34', 'purple':'35', 'cyan': '36', 'white': '37' } backgrounds = {k:v.replace('3','4') for k,v in colors.items()} s = [] if style and style.lower() in styles: s.append(styles[style]) if color and color.lower() in colors: s.append(colors[color]) if background and background.lower() in backgrounds: s.append(backgrounds[background]) prefix = '\033[' + ';'.join(s) + 'm' if s else '' suffix = '\033[0m' return f"{prefix}{text}{suffix}" # 测试用法 print(colored("这是一个测试", color="red")) print(colored("带底纹的文字", color="blue", style="underline")) ``` 这种方法不仅提高了代码可读性和维护性,还使得应用不同风格变得更加直观简单[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值