Python中colorama库与input函数搭配的背景色异常问题求助
解决Colorama输入提示导致终端背景色残留问题
问题根源在于Colorama的autoreset=True只对print()输出的内容生效,input()里设置的ANSI颜色代码不会被自动重置,所以输入完成后终端背景会一直保持黑色。
要修复这个问题,直接在input()的提示文本末尾手动添加colorama.Style.RESET_ALL即可,它会一次性重置所有颜色和样式设置,避免残留。
修改后的代码如下:
import colorama colorama.init(autoreset=True) # 在提示文本末尾添加Style.RESET_ALL重置样式 answer = input(colorama.Back.BLACK + colorama.Fore.YELLOW + 'What is 5 takeaway 5?' + colorama.Style.RESET_ALL).strip() if answer == '0' or answer == 'zero': print(colorama.Back.GREEN + "You're right!") else: print(colorama.Back.RED + "It's actually zero") print(colorama.Back.GREEN + 'Thank you!')
这样既保留了输入提示的彩色效果,又能确保输入完成后终端样式立刻恢复正常,不会影响后续的终端内容。
内容的提问来源于stack exchange,提问作者whatserface
相关产品推荐
相关产品推荐

