Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x randcolor()函数不随机化-python_Python 3.x_Function_Random - Fatal编程技术网

Python 3.x randcolor()函数不随机化-python

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'

我有一个小脚本,它在shell登录时显示我的MOTD,这是一个带有文本的ASCII图片,使用colr库创建渐变颜色。我编写了一个函数来随机化颜色列表,当我在空闲状态下运行时,它将从列表中提取一个随机颜色。但是,当我运行脚本时,它似乎只返回第一个元素(red)。以下是我的功能:

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