之前一直在讲如何呈现刺激,接下来说说怎么来收集实验数据。辛辛苦苦的做实验,最终就是要那点儿数据呢嘛。
这部分主要介绍两个内容,一个是被试基本信息的录入,一个是实验数据,也就是被试反应的记录。
基本信息
在PsychoPy里有一个gui模块专门用来做被试基本信息的登记。gui也就是可视化的用户交互界面,它里面的gui.DlgFromDict()和gui.Dlg()函数可以产生一个对话框,用户填写的信息会保存在一个字典(dictionary)里。
下面我们来看一下怎么用gui.DlgFromDict()创建一个对话框。
首先建一个字典叫做info,里面放的是我们需要记录的被试信息。记着用到的模块要提前载入。
import gui
info = {
'name':'', 'age':'', 'num':'2', 'task':['1','2','3','4']}
这里我们要记下他们的姓名、年龄、测试编号、任务类型。注意,名字要写成英文字母,直接写汉字的话会出错的。
字典里没有给value的话,就是一个空白框(冒号前面的’name’是key,冒号后面的是value)。可以设置默认值,比如’num’:’2’,这样输入框里就会出现2,而且是可以修改的。像’task’这样value是一个list的话,就变成下拉选项的形式了。
接下来要用gui.DlgFromDict()创建一个对话框,代码如下:
infoDlg = gui.DlgFromDict(dictionary = info,
title = u'基本信息',
order = ['name','age','num'])
dictionary用我们上面建的info,标题title叫基本信息,order用来确定它们的顺序。一般会按照创建的顺序呈现的,如果你想调整顺序的在order这里重新设置一下就行。
这样对话框就创建好了,运行一下的就会出现下面这样一个小对话框:
一般情况下我们会设置一个退出的选项,如果被试不打算接着做实验,他可以点cancel,这样程序退出,不再执行下面的代码。
if infoDlg.OK == False:
core.quit()
现在程序里没有别的东西的话看不出差别来。等一下把之前的内容放一点进来再看看哈。
你填完信息点击OK之后,所有的信息就放在info这个字典里了。打印一下看看:
print core,info
# output
{
'age': u&