实验代码无法区分错误响应与无响应,寻求技术解决方案
问题分析与解决建议
原代码核心问题
elif条件重复写了两次(trial_resp.keys == []),无实际判断价值- 未精准区分**无响应(空输入)和错误响应(有输入但不符合正确答案)**的逻辑边界,导致两类情况无法被正确归类
修正后的代码方案
假设你使用的是PsychoPy这类实验常用框架,可按以下逻辑修改代码:
# 统一转换正确答案为字符串,避免类型不匹配导致的判断失效 corrAns_str = str(corrAns) # 1. 判断正确响应:有输入且内容匹配正确答案 if trial_resp.keys and str(trial_resp.keys[0]) == corrAns_str: trial_resp.corr = 1 # 2. 判断无响应:无任何输入(keys为空列表) elif not trial_resp.keys: trial_resp.corr = 'none' # 3. 剩余情况为错误响应:有输入但内容不匹配正确答案 else: trial_resp.corr = 0
关键逻辑说明
- 提前统一正确答案的字符串类型,避免因
corrAns是数字等非字符串类型导致匹配失败 - 无响应时
trial_resp.keys为空列表,用not trial_resp.keys可直接准确判断 - 正确响应需同时满足「存在输入」和「输入内容匹配正确答案」两个条件(PsychoPy中
keys以列表形式存储响应内容,取第一个元素判断即可) - 排除前两类情况后,剩余场景直接判定为错误响应
内容的提问来源于stack exchange,提问作者12666727b9
相关产品推荐
相关产品推荐

