Python - 让每个字符/行随机颜色打印?

时间:2017-09-26 11:44:58

标签: python colors ascii

我的愿望是让每个角色或线条或任何您认为最适合ASCII的外观。基本上我已经尝试colorma,它只基于一种颜色。所以我在这里,问你们,什么是最好的方法。我拥有的是

    print("""   


   _____ _             _                        __ _               
  / ____| |           | |                      / _| |              
 | (___ | |_ __ _  ___| | _______   _____ _ __| |_| | _____      __
  \___ \| __/ _` |/ __| |/ / _ \ \ / / _ \ '__|  _| |/ _ \ \ /\ / /
  ____) | || (_| | (__|   < (_) \ V /  __/ |  | | | | (_) \ V  V / 
 |_____/ \__\__,_|\___|_|\_\___/ \_/ \___|_|  |_| |_|\___/ \_/\_/  




    """)

这就是它。通过这个让我知道你的想法!

1 个答案:

答案 0 :(得分:6)

colorama提供的有效前景色是colorama.Fore上的变量。我们可以使用vars(colorama.Fore).values()检索它们。我们可以使用random.choice随机选择前景色,并将vars获得的前景色输入。{/ p>

然后我们只是为每个字符应用随机选择的颜色:

text = """   


   _____ _             _                        __ _               
  / ____| |           | |                      / _| |              
 | (___ | |_ __ _  ___| | _______   _____ _ __| |_| | _____      __
  \___ \| __/ _` |/ __| |/ / _ \ \ / / _ \ '__|  _| |/ _ \ \ /\ / /
  ____) | || (_| | (__|   < (_) \ V /  __/ |  | | | | (_) \ V  V / 
 |_____/ \__\__,_|\___|_|\_\___/ \_/ \___|_|  |_| |_|\___/ \_/\_/  




    """

import colorama
import random

colors = list(vars(colorama.Fore).values())
colored_chars = [random.choice(colors) + char for char in text]

print(''.join(colored_chars))

这将打印不同颜色的每个字符:

color characters

如果你想要彩色线条,那就是一个简单的改变:

colored_lines = [random.choice(colors) + line for line in text.split('\n')]
print('\n'.join(colored_lines))

enter image description here

您可以根据需要定制颜色列表。例如,如果你想删除可能类似于你的终端背景(黑色,白色等)的颜色,你可以写:

bad_colors = ['BLACK', 'WHITE', 'LIGHTBLACK_EX', 'RESET']
codes = vars(colorama.Fore)
colors = [codes[color] for color in codes if color not in bad_colors]
colored_chars = [random.choice(colors) + char for char in text]

print(''.join(colored_chars))

给出了:

enter image description here