You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Stroop实验循环中每30试次添加按键触发的休息环节?

给Stroop实验循环添加每30试次休息的方案

没问题,我来帮你实现这个休息机制!核心思路是跟踪当前完成的试次数,每满30次就插入休息环节,等待被试按键后再继续。具体修改如下:

实现步骤

  • 用enumerate()遍历刺激列表,这样能同时拿到当前试次的索引(从0开始计数)
  • 每完成30试次时(也就是第30、60、90次试次结束后),弹出休息提示
  • 休息环节等待被试按指定按键后,回到实验流程

修改后的完整代码

start.draw()
win.flip()
event.waitKeys(keyList=['return'])
win.flip()
cross.draw()
win.flip()
event.waitKeys(keyList=['5'])

# 用enumerate获取试次索引,方便计数
for trial_idx, stim in enumerate(stroop):
    colour.text = stim[0]
    colour.color = stim[1]
    colour.draw()
    display_time = win.flip()
    
    # 每30试次后触发休息,排除最后一次(第120次)实验结束的情况
    if (trial_idx + 1) % 30 == 0 and (trial_idx + 1) != 120:
        # 显示休息提示,若已有现成文本组件可直接替换
        rest_prompt = visual.TextStim(win, text="可以休息一下啦!按下回车键继续实验")
        rest_prompt.draw()
        win.flip()
        # 等待被试按键
        event.waitKeys(keyList=['return'])
        # 回到注视点,和实验开始前的流程保持一致
        cross.draw()
        win.flip()
        event.waitKeys(keyList=['5'])

关键细节说明

  • enumerate(stroop)返回的trial_idx是从0开始的索引,trial_idx + 1对应实际完成的试次数,判断起来更直观
  • 加(trial_idx + 1) != 120是为了避免120次试次全部完成后,还弹出多余的休息提示
  • 休息后回到注视点等待按键的逻辑,和实验开头保持一致,能让被试维持稳定的实验节奏
  • 如果你的实验里已经定义过提示文本组件,直接替换代码中的rest_prompt即可,无需重新创建

内容的提问来源于stack exchange,提问作者codebbe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 21:32:42