1

我想在 PsychoPy Builder 中创建一个实验,根据他们的键盘响应有条件地向参与者显示第二个例程。

在任务中,我有一个循环,首先通过一个例程,参与者有三个选项来响应(“左”、“右”、“下”),只有当他们选择“左”时,无论正确答案如何,都应该他们看到了第二个例程,该例程要求回答后续问题。然后循环应该每次都以例程 1 重新启动。

我尝试在“开始实验”部分使用一些代码,如下所示:

if response.key=='left':
    continueRoutine=True
elif response.key!='left':
    continueRoutine=False

但是在这里我得到一个错误,说 response.key 没有定义。

4

1 回答 1

0

假设实际调用了您的键盘组件response,则调用了您要查找的属性response.keys。它是复数的,因为它返回一个列表而不是单个值。这是因为它能够存储多个按键。即使您只指定一个响应,它仍将作为仅包含该单个响应的列表返回(例如['left'],而不是'left')。因此,您要么只需要从该列表中提取一个元素(例如response.keys[0])并对其进行测试,要么使用类似if 'left' in response.keys检查列表内部的结构。

其次,您不需要检查分配TruecontinueRoutine,因为它默认True位于例程的开头。所以它只是将它设置为False导致任何操作。所以你可以简单地做这样的事情:

if not 'left' in response.keys:
    continueRoutine = False

最后,对于 PsychoPy 特定的问题,您可能会通过https://discourse.psychopy.org上的专用论坛获得更好的支持,因为它允许比 SO 中的单个问题/答案结构进行更多的来回讨论。

于 2018-10-21T09:28:02.733 回答