在我的代码中,我遇到了 'Colorama' 模块的两难选择,特别是使用 input() 命令更改了我的线条颜色

In my code I am having a dilemma with the 'Colorama' module specifically changing my line color using the input() command

这是代码:IM 使用 VISUAL STUDIO 代码 BTW

import requests
from colorama import Fore, Style, init
from time import sleep

init()

print(f'{Fore.RED}WELCOME TO JYSKO\'S WEBSITE CHECKER!')
print(f'{Fore.YELLOW}Add my discord: ')
print(f'{Fore.YELLOW}Jy$ko#0420')

def main():
    try:
        site = input(f'{Fore.RED}Please Enter The Website Here: ')
        response = requests.get(site)
        requests.get(site)
        while True:
            if response.status_code == 200:
                print(f'{Fore.GREEN}Online!')
                sleep(1)
            else:
                print(f'{Fore.RED}Offline!')
                sleep(1)
    except:
        print(f'{Fore.RED}Unknown Error Occured.')
main()

问题出在名为 'Main()' 的函数中。正如您在前面的代码行中看到的那样,最后使用的颜色是 '{Fore.YELLOW}' 并且在此函数的 input() 命令中我请求颜色 RED 但是执行时仍然出现作为黄色。我已经尝试过该平台上可用的大多数解决方案,并且正在寻求帮助。 执行代码时,这是吐出的内容:

(RED TEXT->)WELCOME TO JYSKO'S WEBSITE CHECKER!
(YELLOW TEXT->)Add my discord: 
(YELLOW TEXT->)Jysko#0420
(SUPPOSE TO BE RED BUT RETURNS YELLOW->){Fore.RED}Please Enter The Website Here: 

我认为您错过了输入的 f 字符串。

input(f'{Fore.YELLOW}...')

如果字符串开头没有 'f',{Fore.YELLOW} 只会被视为字符串的一部分。但是,对于 f 字符串,花括号内的内容或多或少被视为具有以下内容:

input(Fore.YELLOW + 'your string contents')

编辑:与 OP 合作,发现 Windows 出现奇怪的错误。以上适用于 Mac 和 Linux,但不适用于 Windows - Windows python3.8 上似乎有一个怪癖阻止 colorama 设置input() 中的文本颜色。但是,首先添加打印语句是一种解决方法:

print(Fore.RED, end='') # Changes color, but doesn't add new line
input('original text')