es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

PsychoPy: Si el usuario no presiona ninguna tecla, se asignará automáticamente la tecla “izquierda”.

Actualmente estoy diseñando un experimento en el que el usuario debe presionar “izquierda” o “derecha” en una secuencia de pantalla que se utilizaría en una entrada de pantalla posterior.

Ventana 1:

¿Crees que sucederá A o B?

A: presiona la tecla de flecha izquierda
B: presiona la tecla de flecha derecha

Ventana 2 tiene un código detrás de él algo así como el siguiente para que las variables se emitan en el backend para un análisis futuro.

if(‘izquierda’ in keyDecisionResponse.keys):
algo debe suceder
elif(‘derecha’ in keyDecisionResponse.keys):
algo más debe suceder

Sin embargo, si el usuario no presiona nada (lo cual podría suceder si el usuario no está prestando atención), recibo el error:

TypeError: el argumento de tipo ‘NoneType’ no es iterable

El experimento ha terminado.

Por lo tanto, me gustaría asignar automáticamente ‘izquierda’ a ‘None’ en la Ventana 1, algo así:

if (‘None’ in keyDecisionResponse.keys):
keyDecisionResponse.keys = ‘izquierda’

No funciona. Además, intenté varias cosas, pero ninguna de ellas funcionó.

¿Podrías ayudarme por favor?

Gracias.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Hola,

    Parece que te estás encontrando con un problema en el que si el usuario no presiona nada, se produce un error de tipo ‘NoneType’ al intentar iterar sobre su respuesta. Has intentado asignar ‘left’ a ‘None’ en la Ventana 1 para intentar resolver este problema, pero parece que no está funcionando.

    Una cosa a considerar es que tal vez quieras comprobar explícitamente el caso en el que el usuario no presiona nada, en lugar de intentar asignar un valor predeterminado a ‘None’. Podrías hacer esto modificando tu código en la Ventana 2 para incluir una comprobación adicional:

    if ('left' in keyDecisionResponse.keys):
        algo que ocurra
    elif ('right' in keyDecisionResponse.keys):
        algo más que ocurra
    elif (len(keyDecisionResponse.keys) == 0):
        no se presionó nada - maneja este caso en consecuencia
    

    ¡Espero que esto te ayude! Avísame si tienes alguna otra pregunta.

Comments are closed.