Я новичок в Python и пишу небольшой скрипт для установки цвета RGB, где два из цветов RGB - randint (0,255), а третий (выбран случайным образом) - 0.

Для этого у меня есть это:

import time
from random import *
from neopixel import *

print ('Press Ctrl-C to quit.')

while True:

    colorList = [0, randint(0,255), randint(0,255)]
    shuffle(colorList)
    rColor = ???
    gColor = ???
    bColor = ???
    time.sleep(1)

Мне очень повезло с поиском ответа, но если бы я хотел извлечь первый элемент из списка и установить для него значение rColor, второй для gColor и т. Д., Какую функцию Python я мог бы использовать для этого?

Изменить: мой конечный формат цели будет выходной, который был просто «0, 150, 150». Библиотека NeoPixel, с которой я работаю, очень требовательна, поэтому это буквальный формат, к которому я стремлюсь.

0
Chase Westlye 29 Май 2017 в 05:06

2 ответа

Лучший ответ
  1. Чтобы установить значения цвета для трех переменных. использование

    r, g, b = colorList
    

    Или

    r = colorList[0]
    g = colorList[1]
    b = colorList[2]
    
  2. Если значение «output» - вывести результат на консоль. Тогда используйте

    print(*colorList, sep=', ')
    
  3. Если вам нужна строка '0, 150, 150'

    result = ', '.join(map(str, colorList))
    

    Или

    result = ', '.join([str(x) for x in colorList])
    
1
crvv 29 Май 2017 в 02:21

Это, кажется, делает трюк.

from time import sleep
from random import randint, shuffle

while True:
    color_list = [0, randint(0,255), randint(0,255)]
    shuffle(color_list)
    r_color, g_color, b_color = color_list
    # sets colors to a string like "12, 10, 0"
    colors = ', '.join(str(color) for color in color_list)
    # print (colors) 
    sleep(1)

РЕДАКТИРОВАТЬ: добавлены строки, чтобы включить ваши изменения

1
Skam 29 Май 2017 в 02:24