VS Code中Python打印特殊字符、彩色及带背景色文本方法咨询
VS Code 1.69 环境下 Python 3.x 打印功能问题解答
测试环境为VS Code 1.69版本、Python 3.x解释器,针对彩色文本、特殊字符打印的两个常见问题解答如下:
已知参考代码
基础彩色文本打印实现
print("\033[31mThis is red font.\033[0m") print("\033[32mThis is green font.\033[0m") print("\033[33mThis is yellow font.\033[0m") print("\033[34mThis is blue font.\033[0m") print("\033[37mThis is the default font. \033[0m")
特殊字符参考打印代码
print("\1\2\3\4\05\06\07\016\017\013\014\020") print("\21\22\23\24\25\26\27\36\37\31\32\34\35")
问题1:通过循环结构打印特殊字符的实现方法
你之前编写的循环代码无法生效的核心原因:手动拼接的"\\" + str(i)生成的是字面量反斜杠+数字的普通字符串,不是Python语法中会被解析的八进制转义字符,输出的是\1、\2这类文本,不会转成对应的特殊控制字符。
正确实现方式是直接通过ASCII码值生成对应字符,代码里的\1、\014这类写法本质是八进制数值对应的ASCII控制字符,用内置chr()函数转换即可,无需手动拼接转义符:
for i in range(1, 99): # 直接将数值转为对应ASCII字符,和八进制转义写法效果完全一致 char = chr(i) # repr用来显示字符的转义表示,方便对照效果 print(f"编码值{i} 转义表示:{repr(char)} 打印效果:{char}")
问题2:打印带彩色高亮背景的深色文本的实现方法
你之前用的是标准ANSI终端转义序列,原生就支持背景色、高亮样式配置,不需要额外依赖第三方库:
- 文本前景色编码:3037为标准深色系,9097为高亮浅色系
- 背景色编码:4047为标准深色背景,100107为高亮彩色背景
要实现彩色高亮背景+深色文本的效果,只需要把高亮背景编码、深色前景色编码用分号拼接,放在转义序列开头即可,打印完记得用\033[0m重置样式,避免后续输出的文本继承当前样式。
参考示例代码:
# 高亮黄色背景 + 黑色深色文本 print("\033[103;30m 高亮黄底黑字效果 \033[0m") # 高亮青色背景 + 深蓝色文本 print("\033[106;34m 高亮青底蓝字效果 \033[0m") # 高亮绿色背景 + 深紫色文本 print("\033[102;35m 高亮绿底紫字效果 \033[0m") # 高亮红色背景 + 深灰色文本 print("\033[101;30m 高亮红底深灰字效果 \033[0m")
注意:VS Code 1.69内置终端默认开启ANSI转义序列支持,上述代码直接运行即可看到效果,如果出现样式不生效的情况,检查终端输出编码是否设置为UTF-8即可。
内容的提问来源于stack exchange,提问作者Shane S
相关产品推荐
相关产品推荐

