我正在使用PsychoPy Builder创建一个实验。 我有视觉和听觉刺激,任务是学习它们之间的联系。 当参与者按下右键时,答案"正确"出现。但是,当参与者按错了键时,我不仅要显示错误的信息。但是:"正确答案是......"然后显示图片或正确关联的声音。
我创建了一个名为" Feedback"的例程。它包含Code组件,Text组件和Picture组件(或声音组件)。 在条件文件(.xlsx)中,应显示的图片(声音)被称为" corrective_FB"。
在"开始实验"的代码组件中,我有
message=''
在Code Component中,我在" Begin Routine"中编写了以下代码:
if Antwort_manuell.corr:#stored on last run routine
message="Richtig!"
else:
message="Ups, das war falsch. Die richtige Antwort wäre:"
Form_stimulus2.setImage(corrective_FB)
我猜,我没有做"显示图像"命令正确。如何正确命令?那听觉刺激怎么样?
当我运行实验时,当我按下正确的按键时它似乎有效(但是,当时也显示图片,它应该只是文本......),但是当我按错键时,实验停止了。
当我强迫它结束时,我得到了以下信息:
正在运行:C:\ Dateien \ Forschung \ Experimente \ Legasthenie_Crossmodal \ Experiment \ Visual_manual \ Vis_Man_lastrun.py 追溯(最近的呼叫最后一次)
文件" C:\ Dateien \ Forschung \ Experimente \ Legasthenie_Crossmodal \ Experiment \ Visual_manual \ Vis_Man_lastrun.py",406行, Feedbacktext.setText(消息)
文件" C:\ Program Files(x86)\ PsychoPy2 \ lib \ site-packages \ psychopy-1.82.01-py2.7.egg \ psychopy \ visual \ text.py" ,第240行,在setText中 setAttribute(self,' text',text,log)
文件" C:\ Program Files(x86)\ PsychoPy2 \ lib \ site-packages \ psychopy-1.82.01-py2.7.egg \ psychopy \ tools \ attributetools.py" ,第100行,在setAttribute 中 setattr(self,attrib,value)#set attribute,调用attributeSetter(如果存在)
文件" C:\ Program Files(x86)\ PsychoPy2 \ lib \ site-packages \ psychopy-1.82.01-py2.7.egg \ psychopy \ tools \ attributetools.py" ,第20行,在__set __ newValue = self.func(obj,value)
文件" C:\ Program Files(x86)\ PsychoPy2 \ lib \ site-packages \ psychopy-1.82.01-py2.7.egg \ psychopy \ visual \ text.py" ,第231行,文字 自我。字典 ['文字'] = unicode(文字)
UnicodeDecodeError:' ascii'编解码器不能解码位置43中的字节0xc3:序数不在范围内(128) 异常UnicodeDecodeError:
答案 0 :(得分:0)
谢谢大家的帮助。我终于搞定了。我确实必须将消息标记为unicode字符串。 而且我必须更明确地定义如何针对正确和错误的答案显示刺激。 我不知道,如果我以最聪明的方式做到这一点,但它确实有效。我很感谢建议如何更“精彩”地完成它,但这就是我的代码现在的样子:
if Antwort_manuell.corr:#stored on last run routine
message="Richtig!"
Form_stimulus2.size = 0
else:
message=u"Ups, das war falsch. Die richtige Antwort wäre:"
Form_stimulus2.setImage(corrective_FB)
Form_stimulus2.size = 5
声音的代码是:
if key_tester.corr:#stored on last run routine
message="Richtig!"
sound_1.volume = 0
else:
message=u"Ups, das war falsch. Die richtige Antwort wäre:"
sound_1.setSound(corrective_FB)
sound_1.volume = 1