Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

355
Vistas
La declaración if/else no funciona correctamente en OpenSesame como se esperaba

Estoy usando OpenSesame basado en python para construir un experimento. Todo el experimento funciona bien excepto por una cosa. Escribí un script de python en línea para dar retroalimentación auditiva condicional a los participantes. En la primera condición, la retroalimentación 'Sound_Win.wav' debe ocurrir si la suma de 2 variables es mayor que 0 (funciona bien). En la segunda condición, la retroalimentación 'Sound_Lose.wav' debe ocurrir si la suma de 2 variables es menor que 0 (funciona bien). En la tercera condición, la retroalimentación 'Sound_No.wav' debe ocurrir si la suma de 2 variables es igual a 0. Sin embargo, usando el siguiente código, la tercera condición está reproduciendo la retroalimentación 'Sound_Lose.wav' en lugar de 'Sound_No.wav' retroalimentación (error). Cualquier ayuda sería muy apreciada.

 if [loss]+[win] > 0: src = pool['Sound_Win.wav'] my_sampler = Sampler(src, volume=1.0) my_sampler.play() if [loss]+[win] < 0: src = pool['Sound_Lose.wav'] my_sampler = Sampler(src, volume=1.0) my_sampler.play() elif [loss]+[win] = 0: src = pool['Sound_No.wav'] my_sampler = Sampler(src, volume=1.0) my_sampler.play()
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Por lo que entiendo del código, en lugar de escribir el segundo if, desde el principio, presione una pestaña para sangrar dentro de la primera declaración if y luego escriba la declaración elif según la segunda declaración if, porque la segunda solo sucede si la primera sale incorrecta o mal!!

Si entendí mal, por favor háganmelo saber!! Seguramente lo espero con ansias!!

Gracias 😊

about 4 years ago · Juan Pablo Isaza Denunciar

0

Si te entiendo correctamente, la loss y la win son simplemente números enteros, por lo que tu código debería ser:

 if loss + win > 0: src = pool['Sound_Win.wav'] my_sampler = Sampler(src, volume=1.0) my_sampler.play() elif loss + win < 0: src = pool['Sound_Lose.wav'] my_sampler = Sampler(src, volume=1.0) my_sampler.play() else: src = pool['Sound_No.wav'] my_sampler = Sampler(src, volume=1.0) my_sampler.play()

Simplemente sumas las loss y win . Además, dado que los números enteros están muy definidos, usar una cadena if/elif/else como esta cubre todas las posibilidades.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda