Python实现操作完成后随机更改选择菜单文本颜色的方法
Python终端菜单随机变色实现方案
不需要复杂GUI库,基于终端ANSI彩色输出即可实现效果,跨Windows、macOS、Linux平台通用。
实现步骤
- 先安装彩色输出依赖库
colorama,它会自动处理不同系统的终端颜色兼容问题,执行安装命令:pip install colorama - 核心逻辑:
- 预先定义一组可用菜单颜色,排除和常用终端背景冲突的黑色
- 维护变量存储当前菜单使用的颜色,初始值设为默认可见的白色
- 封装独立的菜单打印函数,打印时自动给菜单文本套上当前颜色
- 每次加密流程执行成功后,从颜色池里随机选一个和当前颜色不同的新颜色,更新存储的颜色变量,下一次打印菜单就会自动应用新颜色
完整可运行代码
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
相关产品推荐
相关产品推荐

