2015-01-13 3 views
2

Я пытаюсь сделать программу в питона, который будет принимать аргумент ввода текста, а затем случайным образом изменить каждую букву, чтобы быть разного цветаслучайный цвет текста Generat

Это то, что у меня есть:

color = ['red' , 'blue', 'green' , 'purple' , 'yellow' , 'pink' , '#f60' , 'black' , 'white']; 

Я хочу иметь программу, которая может позволить мне напечатать абзац, затем он использует цвета в списке и произвольно присваивает их каждой букве.

Для вывода я хотел бы быть чем-то вроде этого.

[color=random]H[/color][color=random]i[/color] [color=random]t[/color] [color=random]h[/color] [color=random]e[/color][color=random]r[/color][color=random]e[/color] 

Цвета должны быть случайными из списка, который я сделал. Можно ли это сделать?

ответ

1

Это работает для меня: выход

from random import choice 

color = ['red' , 'blue', 'green' , 'purple' , 'yellow' , 'pink' , '#f60' , 'black' , 'white'] 
l = len(color) 

str = "Hit Here" 

html = '' 
for x in str: 
    html += '[color=' + choice(color) + ']' + x + '[/color]' if len(x.strip()) > 0 else x 

print(html) 

Пример:

[color=yellow]H[/color][color=#f60]i[/color][color=yellow]t[/color] [color=black]H[/color][color=black]e[/color][color=white]r[/color][color=purple]e[/color] 

[color=purple]H[/color][color=white]i[/color][color=purple]t[/color] [color=black]H[/color][color=green]e[/color][color=red]r[/color][color=blue]e[/color] 

[color=yellow]H[/color][color=green]i[/color][color=#f60]t[/color] [color=blue]H[/color][color=white]e[/color][color=green]r[/color][color=pink]e[/color] 
+0

'random.choice' решает проблему более непосредственно. –

+0

Отредактированный ответ с использованием функции выбора. Благодаря! – Ananth

0

попробовать так:

import random 

#console color 
W = '\033[0m' # white (normal) 
R = '\033[31m' # red 
G = '\033[32m' # green 
O = '\033[33m' # orange 
B = '\033[34m' # blue 
P = '\033[35m' # purple 

my_color = [W, R, G, O, B, P] 

a = raw_input("Enter your text to be colourful: ") 
new_text ="" 
for x in a: 
    new_text += x + random.choice(my_color) 

print new_text + W 

enter image description here

ваш Желаемый результат:

>>> import random 
>>> color = ['red' , 'blue', 'green' , 'purple' , 'yellow' , 'pink' , '#f60' , 'black' , 'white'] 
>>> new_text = "" 
>>> import random 
>>> for x in text: 
...  new_text += "[color={}]{}[/color]".format(random.choice(color), x) 
... 
>>> new_text 
'[color=#f60]h[/color][color=white]e[/color][color=blue]l[/color][color=#f60]l[/color][color=black]o[/color][color=white] [/color][color=purple]h[/color][color=white]o[/color][color=green]w[/color][color=pink] [/color][color=white]a[/color][color=white]r[/color][color=yellow]e[/color][color=red] [/color][color=#f60]y[/color][color=green]o[/color][color=red]u[/color]' 
0

пункт установить pygments, то попробуйте следующее:

import random 
from pygments.console import codes 
string='some string here' 
print ''.join([random.choice(codes.values())+x+codes['reset'] for x in string]) 
Смежные вопросы