0

您好 Stackoverflow 社区,我在使用 shuffle 函数时遇到了一些代码问题:

red_image =  'DDtest/210red.png'
green_image = 'DDtest/183green.png'
b = [red_image, green_image]
c = shuffle(b)
win = visual.Window(size=(1280, 800), fullscr=True, screen=0, monitor='testMonitor', color=[-1,-1,-1], colorSpace='rgb')

teststimulus = visual.ImageStim(win=win,
    image= c, mask=None,
    ori=0, pos=pos1, size=[0.5,0.5],
    color=[1,1,1], colorSpace='rgb', opacity=1,
    flipHoriz=False, flipVert=False,
    texRes=128, interpolate=True, depth=-1.0)

teststimulus.setAutoDraw(True)
win.flip()
event.waitKeys(keyList = ['space'])

这个程序应该做的是随机显示图片的顺序。无论出于何种原因,当我这样做时,它只会显示一个白色块。我确定问题出在随机播放功能上,因为我尝试显示静态图片时效果很好。关于问题可能是什么的任何建议?任何帮助将不胜感激。:)

4

1 回答 1

3

我确实觉得 Python 中有一些东西是人们必须习惯的。一件事是经常“就地”处理对象。这也是真的shuffle。实际上,使用b. Python 只是打乱列表参数本身。因此,每次调用时shuffle(b),您都会在b对象中获得两个图片名称的随机排序(您可以省略“c =”部分)。

查看您的代码,您仍然必须选择其中一张图片,ImageStim因为列表始终保持相同大小(两个图片名称,每次调用后随机排序)。所以你必须做一些类似image=b[0](名字)或image=b[1](名字)的事情。

我没有检查所有的代码,所以我不知道它是否会运行。

最好的,

阿克塞尔

于 2015-02-19T21:36:47.163 回答