为了达到目的,我将120种不同颜色的TextStim(不同颜色的单词)项目修改为名为“试验”的列表。我将循环通过'试验'逐一呈现这些刺激。但是,根据我使用的循环,它们已按照顺序修改为此列表。理想情况下,我需要将它们随机化,以便在它们出现时。 我试过了:
导入随机
试验= random.shuffle(试验)
但我得到的只是TypeError:'NoneType'对象不可迭代......我认为它与列表中的刺激类型存储为错误的变量类型这一事实有关。出于同样的原因,当我试图找到每个演示文稿的试验编号时(对于试验中的c:... trialnum = len(c))所以我可以将试用版号与响应一起存储,我收到的消息不是以这种形式可迭代。基本上我觉得这两个问题在某些基本方面是相关的。
任何帮助将不胜感激
谢谢!
答案 0 :(得分:1)
这是因为random.shuffle
随机播放并返回None
(这就是为什么您收到有关NoneType
的错误的原因),所以
random.shuffle(pairs)
而不是
pairs = random.shuffle(pairs)
作为一般性评论,您不会生成很多TextStims,而是生成一个,然后在运行实验时更新它。看起来您正在进行Stroop实验或类似的事情。所以做这样的事情:
# General setup
import random
from psychopy import visual, event
win = visual.Window()
# A TextStim and five of each word-color pairs
stim = visual.TextStim(win)
pairs = 5 * [('blue', 'blue'), ('red', 'blue'), ('green', 'yellow'), ('red','red')]
random.shuffle(pairs)
# Loop through these pairs
for pair in pairs:
# Set text and color
stim.text = pair[0]
stim.color = pair[1]
# Show it and wait for answer
stim.draw()
win.flip()
event.waitKeys()