按键值与字符串比对问题:key_resp_3.keys与"b"比对失效如何解决
问题根因
PsychoPy 的键盘响应组件返回的key_resp_3.keys为数组类型,即便用户只按下单个按键,返回值也会是['b']格式的单元素数组,而非你预期的字符串'b'。你之前直接拿数组和字符串做不等比对,判断结果永远为真,所以无论按下什么按键都会触发跳过逻辑。
正确比对代码
你当前使用的是JS语法的PsychoPy实验,按场景选择对应写法即可:
- 单次仅允许输入单个按键的场景
// 先判断存在按键输入,再取数组第一位比对 if (key_resp_3.keys.length > 0 && key_resp_3.keys[0] !== 'b') { continueRoutine = false; }
- 允许输入多个按键,只要包含
b就保留当前环节的场景
if (key_resp_3.keys.length > 0 && !key_resp_3.keys.includes('b')) { continueRoutine = false; }
如果你用的是Python版本的PsychoPy,对应写法如下:
# 单按键场景 if key_resp_3.keys and key_resp_3.keys[0] != 'b': continueRoutine = False
内容的提问来源于stack exchange,提问作者Linda Espey
相关产品推荐
相关产品推荐

