gpt4 book ai didi

psychopy - 从参与者那里获取自由文本(字符串)输入

转载 作者:行者123 更新时间:2023-12-02 08:31:31 27 4
gpt4 key购买 nike

这似乎是一个愚蠢的问题,但我无法在文档中找到如何在 PsychoPy Builder 实验中从用户那里获取文本输入。

例如,如果我有一个文本组件来显示消息“你叫什么名字?”

我想获取文本答案(按键回显到屏幕上)并将其保存到结果文件中。

我是否必须进入代码并使用对话框?

谢谢

最佳答案

谢谢迈克尔。看起来它可以解决问题,但我希望有一些更简单的东西可以交给非编程研究人员,所以我玩了一把,想出了以下满足我要求的东西。

我已将代码粘贴到 GitHub 此处 https://github.com/jacanterbury/PsychoPy-snippets

但基本上它做了以下事情:

TextStim 文本字段包含以下内容:

$(word + '\n' + inputText)

同一循环中的代码对象具有以下内容:

开始实验:

inputText = ""

开始例程:

theseKeys="" 
shift_flag = False
text_3.alignHoriz ='left'

每一帧:

n= len(theseKeys)
i = 0
while i < n:

if theseKeys[i] == 'return':
# pressing RETURN means time to stop
continueRoutine = False
break

elif theseKeys[i] == 'backspace':
inputText = inputText[:-1] # lose the final character
i = i + 1

elif theseKeys[i] == 'space':
inputText += ' '
i = i + 1

elif theseKeys[i] in ['lshift', 'rshift']:
shift_flag = True
i = i + 1

else:
if len(theseKeys[i]) == 1:
# we only have 1 char so should be a normal key,
# otherwise it might be 'ctrl' or similar so ignore it
if shift_flag:
inputText += chr( ord(theseKeys[i]) - ord(' '))
shift_flag = False
else:
inputText += theseKeys[i]

i = i + 1

结束程序:

# let's store the final text string into the results finle...
thisExp.addData('inputText', inputText)
inputText=""

数据文件夹中的结果文件给出了按下的各个键以及最终字符串

希望代码是不言自明的。唯一可能不明显的是 ascii 中的小写和大写字符相隔 1:1 和 32,这是单个空格的值(例如,在 ASCII 中 'a' = 'A' + ' ' )

随时评论/改进它(它目前不处理 SHIFT-LOCK,但应该很容易修复)

最好将它放到一个库中,这样“每一帧”选项卡上的所有代码都可以换成一行

关于psychopy - 从参与者那里获取自由文本(字符串)输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26274454/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com