【发布时间】:2018-10-04 22:15:29
【问题描述】:
我是 Python 新手,正在编写一个简单的心理学实验。简而言之,我向参与者展示了一系列随机图像,并让他们在给定图像中检测到人脸时按下一个键。
我的一个问题是当参与者按键太快时程序崩溃 - 也就是说,我注意到即使参与者在没有图像存在时按下键,程序也会记录响应。每个图像只会在屏幕上显示 10 秒。参与者通常平均需要约 0.5 秒来做出回应。
是否有一个键可供我对实验进行编程,以便 Psychopy 只记录一次按键操作,在屏幕上显示图像之后?我在下面粘贴了我的代码。
非常感谢。
StimList=['Face1.png','Face2.png',]
StimList.extend(['Noise1.png','Noise2.png'])
# randomize lists:
numpy.random.shuffle(StimList)
outstr=""
for TrialNo in range(len(StimList)):
# load our image:
img=visual.ImageStim(
win=win,
image=StimList[TrialNo],
)
# draw the fixation cross and wait for trial start:
win.flip()
time.sleep(1) # wait 1 second on fixation cross
# start a trial: loop until a key has been pressed (or trial times out)
FaceDetected=0 # same as false
Responded=0 #revise
timer=core.Clock()
timer.reset()
while (not Responded) and (timer.getTime()<TimeOut): #remove not responded
img.draw()# outside loop
win.flip() #outside loop
keys=event.getKeys(keyList=['y','Y', 'n','N'], modifiers=False, timeStamped=timer)
if keys:
if (keys[0][0]=='y') | (keys[0][0]=='Y'):
FaceDetected=True
Responded=True
RT=keys[0][1]
elif (keys[0][0]=='n') | (keys[0][0]=='N'):
FaceDetected=False
Responded=True
RT=keys[0][1]
outstr=outstr+str(TrialNo)+", "+ StimList[TrialNo] +", "+str(FaceDetected)+", "+str(RT)+"\n"
print(outstr)
# first open the file:
outfile=open('tmpdata.csv', 'w')
outfile.write(outstr)
outfile.close()
win.close()
【问题讨论】:
-
请澄清您所说的“程序崩溃”是什么意思。如果确实如此,则应该有一条错误消息可供您分享,这将有助于大大缩小问题范围。