Python 3.x randcolor()函数不随机化-python
我有一个小脚本,它在shell登录时显示我的MOTD,这是一个带有文本的ASCII图片,使用colr库创建渐变颜色。我编写了一个函数来随机化颜色列表,当我在空闲状态下运行时,它将从列表中提取一个随机颜色。但是,当我运行脚本时,它似乎只返回第一个元素(red)。以下是我的功能:Python 3.x randcolor()函数不随机化-python,python-3.x,function,random,Python 3.x,Function,Random,我有一个小脚本,它在shell登录时显示我的MOTD,这是一个带有文本的ASCII图片,使用colr库创建渐变颜色。我编写了一个函数来随机化颜色列表,当我在空闲状态下运行时,它将从列表中提取一个随机颜色。但是,当我运行脚本时,它似乎只返回第一个元素(red)。以下是我的功能: from random import randint from colr import Colr as C def randcolor(): colors = ['red', 'blue', 'green'
from random import randint
from colr import Colr as C
def randcolor():
colors = ['red', 'blue', 'green', 'cyan', 'orange']
n = (len(colors))
o = randint(0, n-1)
color = colors[o]
return color
因此,当在空闲状态下运行时,结果如下:
>>> randcolor()
'red'
>>> randcolor()
'red'
>>> randcolor()
'green'
>>> randcolor()
'cyan'
>>> randcolor()
'green'
>>> randcolor()
'red'
>>> randcolor()
'orange'
>>> randcolor()
'green'
但当我在脚本中实现它时,它似乎只返回第一个元素:
f = open('/etc/motd', 'r')
motd = f.readlines()
f.close()
print(str(C(' '.join(motd)).gradient(name=randcolor()))
我不能在这里添加脚本的结果,但足以说明它没有改变渐变。出什么事了
我还想知道这是否可以作为lambda来完成。我试图只分配一个变量:
color=colors[(randint(0,len(colors)-1)]
,但这只返回了脚本正在执行的第一个元素。有什么建议吗?谢谢 感谢Steven提供的随机选择()解决方案
print(str(C(' '.join(motd)).gradient(name=random.choice(colors))))
为什么不使用随机选择呢?我还在学习,对随机库还不是很熟悉。我将尝试一下,看看它是否能解决问题。使用
o
作为变量名迟早会给您带来麻烦。它看起来太像0
。