2015-01-13 30 views
2

我试图做一个Python程序,将接受文本输入的参数,然后随机改变每个字母是一个不同的颜色随机颜色的文本发电机密封

这是我有:

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

PIP安装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])