You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用变量实现文本格式化并设置终端文本颜色?

需求可行性及实现方案

这个需求完全可行,通过ANSI转义序列可以轻松实现终端文本颜色的动态切换,你的代码思路没问题,只是在字符串变量嵌入的方式上有误。

原代码的问题

  1. 字符串中的(colour)是字面量,不会被解析为变量值,导致颜色控制失效
  2. 将输入转为float没必要,直接用int处理整数选择更合理
  3. 蓝色对应的ANSI代码错误:34才是蓝色,原代码中的35实际是紫色

修正后的实现代码

# 打印带样式的提问文本,末尾重置样式避免影响后续内容
print("\033[1;35m\033[1;4m What colour would you like the printed text to be?\033[0m")
print("    1. Red")
print("    2. Green")
print("    3. Blue")

# 处理用户输入,增加异常捕获避免非数字输入崩溃
try:
    ans1 = int(input())
except ValueError:
    print("请输入有效的数字选项(1-3)")
    exit()

# 根据选择设置颜色代码并输出对应颜色文本
if ans1 == 1:
    colour = 31
    print(f"\033[1;{colour}m This text is red\033[0m")
elif ans1 == 2:
    colour = 32
    print(f"\033[1;{colour}m This text is green\033[0m")
elif ans1 == 3:
    colour = 34
    print(f"\033[1;{colour}m This text is blue\033[0m")
else:
    print("请选择1-3之间的选项")

关键说明

  • 使用f-string(f"\033[1;{colour}m")将变量colour的值嵌入转义序列,这是Python 3.6+最简洁的字符串格式化方式
  • 每次颜色输出后添加\033[0m重置终端样式,避免后续文本继承当前颜色
  • 增加输入异常处理,提升程序健壮性

内容的提问来源于stack exchange,提问作者Kian Murray

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 00:05:32