【问题标题】:Having a break within a loop and waiting for the person to continue在循环中休息并等待该人继续
【发布时间】:2020-03-09 11:39:12
【问题描述】:

您好,我正在进行一项包含 120 次试验的实验。我想每 30 次试验在循环中添加一个中断,并等待参与者在准备继续时按下一个键。我的循环代码如下所示

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

win.flip()

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


for stim in stroop:
    colour.text = stim[0]
    colour.color = stim[1]
    colour.draw()
    display_time = win.flip()

如何在这个 for 循环中添加中断? 谢谢!!

【问题讨论】:

    标签: python-3.x psychopy


    【解决方案1】:

    您可以使用 enumerate 来跟踪所进行的迭代次数:

    for idx, stim in enumerate(stroop):
        # The +1 makes it so we avoid asking the user's input on first iteration.
        if (idx + 1) % 30 == 0:
            event.waitKeys(keyList=['return'])
        [...]
    

    顺便说一句,python 中的breaks 是指跳出循环。您要做的就是“等待用户输入”。

    【讨论】:

    • 感谢您提供的信息。我无法在正确的地方找到它。它是在 colour.draw 或 win.flip 下还是其他地方?
    • 第一行替换您当前的for stim in stroop:。您将其余部分放在哪里取决于您希望何时发生暂停:在绘制刺激之前还是之后?
    • 谢谢您,它正在工作!我想添加一个屏幕,上面写着“按 ENTER 继续”,我像这样 continue1= visual.TextStim(win, text = 'Press ENTER to continue', pos = (0,0), color=(1,1,1)) 将其添加到循环中将 continue1.draw() 放在 event.waitKeys() 之前
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-09
    • 2020-07-14
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    • 2014-05-28
    相关资源
    最近更新 更多