【问题标题】:randcolor() function not randomizing - pythonrandcolor() 函数不随机化 - python
【发布时间】:2017-10-19 18:55:45
【问题描述】:

我有一个小脚本,它在 shell 登录时显示我的 MOTD,它是一个带有文本的 ASCII 图片,使用 colr 库以创建渐变的颜色渐变。我写了一个函数来随机化一个颜色列表,当我在 IDLE 中运行时,它会从列表中拉出一个随机颜色。但是,当我运行脚本时,它似乎只返回第一个元素(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

所以当在 IDLE 中运行时,结果如下:

>>> 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))],但它只返回了脚本正在执行的第一个元素。有什么建议?谢谢!

【问题讨论】:

  • 为什么不使用random.choice
  • 嗯,我还在学习,对随机库还不是很熟悉。我会尝试一下,看看它是否可以纠正问题。
  • 使用o 作为变量名迟早会给你带来麻烦。太像0了。

标签: python-3.x function random


【解决方案1】:

感谢 Steven 提供的 random.choice() 解决方案。

print(str(C(' '.join(motd)).gradient(name=random.choice(colors))))

【讨论】:

    猜你喜欢
    • 2016-07-23
    • 1970-01-01
    • 2015-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多