2017-09-26 4 views
1

Nouveauté en Python ... Mon souhait est de faire en sorte que chaque caractère ou ligne ou tout ce que vous croyez le mieux puisse ressembler à un ASCII. Fondamentalement, j'ai essayé colorma je pense que c'est qu'il était appelé et il était seulement basé sur une couleur. Alors voila, je vous demande quelle est la meilleure méthode. Ce que j'ai estPython - Rendre chaque caractère/ligne impression aléatoire de couleur?

print(""" 


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




    """) 

et c'est à peu près cela .. Faites-moi savoir vos pensées à travers cela! :)

Répondre

2

Les couleurs de premier plan valides fournies par colorama sont des variables sur colorama.Fore. Nous pouvons les récupérer en utilisant vars(colorama.Fore).values(). Nous pouvons sélectionner au hasard une couleur de premier plan en utilisant random.choice, en lui donnant les couleurs de premier plan obtenues par vars.

Ensuite, nous simplement appliquer un hasard choisi la couleur pour chaque personnage:

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)) 

Ce imprime tous les caractères dans une autre couleur:

color characters

Si vous voulez des lignes de couleur à la place, c'est un simple changement:

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

enter image description here

Vous pouvez adapter la liste de couleurs à vos besoins. Par exemple, si vous voulez supprimer les couleurs qui peuvent être semblables à l'arrière-plan terminal (noir, blanc, etc.) vous pouvez écrire:

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)) 

Ce qui donne:

enter image description here

+0

droite belle! Merci beaucoup! – WeInThis

+0

Je souhaite que je puisse enlever seulement la couleur noire à cause du CMD mais je pense que ce sera bien :) Si c'est assez facile d'enlever le noir seulement. Serait génial! – WeInThis

+0

Oh. J'ai maintenant la couleur pour le noir mais comment serait-il possible de l'enlever dans ce cas de la valeur? Y a-t-il un code possible pour simplement supprimer au lieu de changer le code de ligne entier? :) – WeInThis