Я планирую эксперимент с пакетом Expyriment. Есть две коробки, и я даю им случайные цвета, но они должны отличаться друг от друга. Я использую для цикла и перечислить для цикла:
color = [(0, 76, 153), (204, 0, 0), (0, 153, 0), (255, 230, 0)]
for i, x in enumerate(color):
print(color[i])
print(random.choice(color.remove(color[i])))
2 проблемы возникли отсюда, кортеж, который я удалил, ушел навсегда, и я получил TypeError: объект типа 'NoneType' не имеет len ()
Я ищу способ временно удалить кортеж для зацикливания, но не могу его найти.
Кроме того, когда я пытался использовать pop print(random.choice(color.pop(i)))
,
он не дал мне ошибку, но он просто печатает int, а не кортеж. Кроме того, объект, который я выскакиваю, все еще ушел навсегда.
Полный код>
color = [(0, 76, 153), (204, 0, 0), (0, 153, 0), (255, 230, 0)]
letter = ('b', 'r', 'g', 'y')
for i, x in enumerate(color):
frame = stimuli.Canvas((600, 600))
sti = stimuli.TextLine(letter[i], text_bold=True, text_colour=misc.constants.C_WHITE,
text_size=100, text_font='calibri')
positions = (200, -200)
n = (0, 1)
ac = random.choice(n) # randomize the place of true box
sti_squ_1 = stimuli.Rectangle((100, 100), colour=color[i], position=(positions[ac], -200)) # true box
sti_squ_2 = stimuli.Rectangle((100, 100), colour=color[random.choice(color.remove(color[i]))], position=(positions[1 - ac], -200))