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

Python实现操作完成后随机更改选择菜单文本颜色的方法

Python终端菜单随机变色实现方案

不需要复杂GUI库,基于终端ANSI彩色输出即可实现效果,跨Windows、macOS、Linux平台通用。

实现步骤

  • 先安装彩色输出依赖库colorama,它会自动处理不同系统的终端颜色兼容问题,执行安装命令:
    pip install colorama
  • 核心逻辑:
    1. 预先定义一组可用菜单颜色,排除和常用终端背景冲突的黑色
    2. 维护变量存储当前菜单使用的颜色,初始值设为默认可见的白色
    3. 封装独立的菜单打印函数,打印时自动给菜单文本套上当前颜色
    4. 每次加密流程执行成功后,从颜色池里随机选一个和当前颜色不同的新颜色,更新存储的颜色变量,下一次打印菜单就会自动应用新颜色

完整可运行代码

from colorama import init, Fore
import random

# 初始化colorama,自动重置后续输出颜色,避免非菜单文本被意外染色
init(autoreset=True)

# 可用颜色池,移除了黑色避免黑底终端下文字看不见
AVAILABLE_COLORS = [
    Fore.RED,
    Fore.GREEN,
    Fore.YELLOW,
    Fore.BLUE,
    Fore.MAGENTA,
    Fore.CYAN,
    Fore.WHITE,
    Fore.LIGHTRED_EX,
    Fore.LIGHTGREEN_EX,
    Fore.LIGHTYELLOW_EX,
    Fore.LIGHTBLUE_EX,
    Fore.LIGHTMAGENTA_EX,
    Fore.LIGHTCYAN_EX
]

# 原有菜单文本
CHOOSE_MENU = '''
Please Choose an Option
1. Encrypt
2. Decrypt
3. Exit
'''

def encrypt_operation():
    # 替换为你自己的加密业务逻辑
    print("正在执行加密操作...")
    # 操作成功返回True,失败返回False即可
    return True

def decrypt_operation():
    # 替换为你自己的解密业务逻辑
    print("正在执行解密操作...")
    return True

if __name__ == "__main__":
    # 初始化菜单默认颜色为白色
    current_menu_color = Fore.WHITE
    while True:
        # 打印带当前颜色的菜单
        print(f"{current_menu_color}{CHOOSE_MENU}")
        choice = input("请输入选项编号:").strip()
        if choice == "1":
            op_res = encrypt_operation()
            if op_res:
                # 过滤当前正在使用的颜色,随机选取新颜色
                current_menu_color = random.choice(
                    [c for c in AVAILABLE_COLORS if c != current_menu_color]
                )
                print("加密完成,菜单颜色已随机更换")
        elif choice == "2":
            decrypt_operation()
        elif choice == "3":
            print("程序退出")
            break
        else:
            print("输入无效,请输入1/2/3选择对应功能")

注意事项

  • 该方案依赖终端对ANSI转义序列的支持,目前Windows 10及以上版本的CMD、PowerShell,macOS、Linux的默认终端都可以正常显示效果,colorama会自动适配低版本Windows的终端兼容问题。
  • 如果不想安装第三方依赖,也可以直接手写ANSI颜色码实现,比如红色前缀是\033[31m、重置颜色是\033[0m,但需要自行处理跨平台兼容,不如直接用colorama省事。
  • 可以根据自己的终端背景调整颜色池内容,去掉和背景色接近的颜色,避免菜单文字看不清。

内容的提问来源于stack exchange,提问作者Awais Ali

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 03:03:22