[英]How do I check accuracy within the loop?
我正在尝试为我的实验编写一个函数,该函数在中间的彩色矩形上方显示2个标签。 拍摄对象必须按向左或向右按上面的标签之一对颜色进行分类。
我想在循环中进行编码,如果准确性为1,则实验应显示一个信息文本,说明他们的选择正确;反之亦然,如果准确性为0,则按回车继续后,应返回到原始循环,然后重复自身。
我怎么做?
# make a function for one trial of colour practice
def con1_trial(self):
global trial
global key
trial += 1
target_colour = random.choice(colours)
# show one square with gouloboy colour in top right corner of screen
col3rec.setFillColor(target_colour)
col3rec.draw()
sinij_text.draw()
boy_text.draw()
# draw and flip
win.flip()
key, test_answer = event.waitKeys(keyList=['right', 'left', 'escape'], timeStamped = True)[0]
for colour_pair in colour_pairs:
if test_colour == colours[0] and key == "left":
accuracy = 1
elif test_colour == colours[1] and key == "right":
accuracy = 1
elif key == 'escape':
core.quit()
else: accuracy = 0
# records time in ms
rt = (test_answer - test_start)*1000
return accuracy, rt
尝试的定义是选择一种颜色,绘画,等待输入并记录答案。 这是一些伪代码
def trial():
color = random.choice(colours)
# draw stuff
# set time start
# wait for key press
# check if key press correct
# print whether they were correct and the time
if enter pressed: trial()
为了使代码更简洁,首先在脚本的较早位置定义一个反馈函数:
feedback_text = visual.TextStim(win)
def show_feedback(feedback):
# Show feedback on screen
feedback_text.text = feedback
feedback_text.draw()
win.flip()
# Wait for key
event.waitKeys()
在您的代码之后添加以下内容:
# Show feedback
if accuracy == 1:
show_feedback('Correct! Well done. Press a key to continue...')
elif accuracy == 0:
show_feedback('Wrong! Press a key to continue...')
...具有正确的压痕级别。 我总是最终拥有某种显示消息的功能。 在show_feedback
您还可以添加一些内容以退出实验:
key = event.waitKeys()[0] # get first key pressed
if key == 'escape':
core.quit()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.