如何让VS Code终端按数据类型以不同颜色区分输出?
让VS Code终端根据Python变量类型自动着色输出
核心逻辑
终端本身无法识别Python输出内容的原始数据类型(因为print()输出的都是纯文本),所以需要让Python在输出时自动为不同类型的变量添加终端可识别的ANSI颜色控制码,VS Code终端原生支持这类颜色码。
实现方案
1. 自定义带颜色的打印函数
写一个专门的打印函数,自动判断变量类型并添加对应颜色:
def color_print(obj): # 定义不同类型对应的ANSI颜色码 type_colors = { str: "\033[91m", # 红色:字符串类型 int: "\033[92m" # 绿色:整数类型 } reset_color = "\033[0m" # 重置颜色,避免后续输出受影响 # 获取当前变量类型对应的颜色码,无匹配则用默认样式 selected_color = type_colors.get(type(obj), "") # 输出带颜色的内容 print(f"{selected_color}{obj}{reset_color}") # 测试代码 n = "123" color_print(n) # 红色的123(字符串) color_print(int(n)) # 绿色的123(整数)
2. 替换默认的print函数(可选)
如果不想每次调用新函数,可直接重写默认的print,让所有打印自动适配颜色:
# 先保存原始print函数 original_print = print def print(obj, *args, **kwargs): type_colors = { str: "\033[91m", int: "\033[92m" } reset_color = "\033[0m" # 仅针对字符串和整数类型添加颜色,其他类型保持默认 if isinstance(obj, (str, int)): colored_obj = f"{type_colors[type(obj)]}{obj}{reset_color}" original_print(colored_obj, *args, **kwargs) else: original_print(obj, *args, **kwargs) # 测试代码 n = "123" print(n) # 红色输出 print(int(n)) # 绿色输出
注意事项
- 确保VS Code终端开启颜色支持:打开VS Code设置,搜索
terminal.integrated.enableColors,确认选项处于勾选状态。 - 颜色码可自定义:比如把字符串改成蓝色(
\033[94m),整数改成黄色(\033[93m),根据自己的偏好调整即可。
内容的提问来源于stack exchange,提问作者dhayarp99
相关产品推荐
相关产品推荐

