如何从列表中打印不同颜色的单词,然后在python窗口中显示它?

时间:2017-09-03 02:06:58

标签: python psychopy

如何在python中为列表中的每个单词添加颜色,然后将其打印到窗口中?

我的代码是:

cognitivo = ["Plan","Organize","Help","liquidate","solvency","Prioritize","work","business","achievements","Control"]
for stimulus in cognitivo:
    mens = visual.TextStim(win, text=stimulus)
    mens.draw()
    win.flip()
    #core.wait(1.0) 

只是复制列表,因为它是用for循环打印的,而不是复制我所做的所有代码...只打印一种颜色,我想要的是特定颜色的每个单词...请,有人能帮我吗?感谢。

1 个答案:

答案 0 :(得分:1)

为了简化操作,您可能要做的是为每个试验创建一个字典,将所有与试验相关的信息保存在一个对象中(例如试验的文本和颜色)。这样就可以很容易地遍历这些词典列表并轻松访问试用值。查看PsychoPy TrialHandler类,它将完成所有这些以及更多(包括保存数据)。

但只是为了适应您的简单代码段,请尝试以下方法:

cognitivo = ['Plan', 'Organize', 'Help', 'liquidate', 'solvency', 'Prioritize', 'work', 'business', 'achievements', 'Control']
# create some corresponding colours:
colors = ['red', 'green', 'yellow', 'blue', 'black'] * 2

# initialise the text stimulus just once:
mens = visual.TextStim(win, text = 'XXXXXX')

# loop through the stimuli:
for stimulus in cognitivo:
    # update the stimulus:
    mens.text = stimulus
    mens.color = colors.pop()

    # display for 1 second at 60 Hz:
    for frame in range(60)
        mens.draw()
        win.flip()

请注意,一般情况下,您不应该继续重新创造刺激。通常,只需初始化一次,然后更新其属性。创建刺激通常比更新现有刺激花费更长的时间。

相关问题