Python 未能在psychopy中附加变量

Python 未能在psychopy中附加变量,python,psychopy,Python,Psychopy,我正在创建一个概率学习任务。它有一个学习阶段,这是我目前正在准备的,在PsychoPy中使用带有自定义代码的生成器界面。学习阶段在一个名为practice的循环中至少有60次试验 除了用于向参与者提供反馈的正确答案外,还有三个条件可以决定学习阶段是否可以完成。一旦达到标准,培训阶段将终止 我需要附加三个变量并记录分数。 我创建了3个变量(类似于resp.corr变量),专门针对这三种情况进行计算。代码放在“结束例程”部分,因为在前面的部分中,resp尚未定义 结束例行程序 if(resp.key

我正在创建一个概率学习任务。它有一个学习阶段,这是我目前正在准备的,在PsychoPy中使用带有自定义代码的生成器界面。学习阶段在一个名为
practice
的循环中至少有60次试验

除了用于向参与者提供反馈的正确答案外,还有三个条件可以决定学习阶段是否可以完成。一旦达到标准,培训阶段将终止

我需要附加三个变量并记录分数。 我创建了3个变量(类似于resp.corr变量),专门针对这三种情况进行计算。代码放在“结束例程”部分,因为在前面的部分中,
resp
尚未定义

结束例行程序

if(resp.key==letterA):
resp1=1
其他:
resp1=0
如果(分别键==字母C):
resp2=1
其他:
resp2=0
如果(分别键==字母):
resp3=1
其他:
resp3=0
这很好用。我在excel输出中添加了变量resp1、resp2和resp3。我检查过了,它们都计算正确了

所以我知道我需要将这些变量附加到一个列表中,我使用了以下代码:

结束例行程序

resplist1.append(resp1)
resplist2.append(resp2)
resplist3.append(resp3)
我还将这些列表保存在excel输出中,以检查它们的计算是否正确。我使用了以下代码:

结束例行程序

practice.addData('resplist1',resplist1)
做法.添加数据('resplist2',resplist2)
做法.添加数据('resplist3',resplist3)
不幸的是,replist1、replist2和replist3无法追加列表。相反,resp1、resp2和resp3的值打印在[]中。下图:

imageimage.png1635×655 34.1kb

我还检查了是否有可能计算replist1、replist2和replist3的总和,正如你所猜测的那样,它不起作用。计算值与resp1、resp2和resp3完全相同

我不知道为什么列表没有被正确地附加,我将感谢所有的帮助!我已经在这项任务上耽搁太久了,我非常渴望完成它


您没有显示如何初始化列表
resplist1
等。我猜您是在“开始例行程序”选项卡中这样做的。这将不断重置它们,以便它们永远不会包含多个值

如果是这样,请将它们的初始化切换到“开始实验”选项卡,这样就不会在每次试验中丢失新添加的值

当您的列表实际包含多个元素时,对其进行计算的最简单方法是将其转换为
numpy
(导入为
np
)数组,该数组允许矢量化操作,例如:

sum_1 = np.array(resplist1).sum()

问题出现在
之后。。resplist3.append(resp3)
等。当你来写文件时,但你还没有显示出来,谢谢!我现在在那里添加了它
resplist1
将是一个包含1个元素的列表,如果您只是尝试按原样打印,它将打印列表(包含周围的[]),当您打印时,您应该以
repslist1[0]
的身份访问第0个元素,以仅获取没有
[]的数字
也许我不清楚在训练阶段至少有60次试验,所以我希望
resplist1
有60个元素,这样我就可以在每次试验后计算出该条件下的分数总和。我怎样才能做到呢?非常感谢你,迈克尔!这很有道理,现在问题已经解决了。我忽略了代码的这一部分-真不敢相信它这么简单!