If/else 语句在 OpenSesame 中没有按预期正常工作
If/else statement is not working properly in OpenSesame as expected
我正在使用基于 python 的 OpenSesame 构建实验。除了一件事,整个实验工作正常。我编写了一个内联 python 脚本来向参与者提供有条件的听觉反馈。在第一种情况下,如果 2 个变量的总和大于 0(工作正常),则应该出现 'Sound_Win.wav' 反馈。在第二种情况下,如果 2 个变量的总和小于 0(工作正常),则应该出现 'Sound_Lose.wav' 反馈。在第三个条件下,如果 2 个变量的总和等于 0,则应该出现 'Sound_No.wav' 反馈。但是,使用以下代码,第三个条件是播放 'Sound_Lose.wav' 反馈而不是 'Sound_No.wav'反馈(错误)。任何帮助将不胜感激。
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()
据我对代码的理解,不是写第二个 if,而是从头开始,在第一个 if 语句中按一个制表符将其缩进,然后按照第二个 if 语句编写 elif 语句,因为第二个只有在第一个不正确或错误时才会发生!!
如果我理解有误,请告诉我!!
我一定会很期待的!!
谢谢
如果我理解正确,那么 loss
和 win
只是整数,所以您的代码应该是:
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()
您只需将 loss
和 win
相加即可。此外,由于整数的定义非常严格,因此使用这样的 if/elif/else
链涵盖了所有可能性。
我正在使用基于 python 的 OpenSesame 构建实验。除了一件事,整个实验工作正常。我编写了一个内联 python 脚本来向参与者提供有条件的听觉反馈。在第一种情况下,如果 2 个变量的总和大于 0(工作正常),则应该出现 'Sound_Win.wav' 反馈。在第二种情况下,如果 2 个变量的总和小于 0(工作正常),则应该出现 'Sound_Lose.wav' 反馈。在第三个条件下,如果 2 个变量的总和等于 0,则应该出现 'Sound_No.wav' 反馈。但是,使用以下代码,第三个条件是播放 'Sound_Lose.wav' 反馈而不是 'Sound_No.wav'反馈(错误)。任何帮助将不胜感激。
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()
据我对代码的理解,不是写第二个 if,而是从头开始,在第一个 if 语句中按一个制表符将其缩进,然后按照第二个 if 语句编写 elif 语句,因为第二个只有在第一个不正确或错误时才会发生!!
如果我理解有误,请告诉我!! 我一定会很期待的!!
谢谢
如果我理解正确,那么 loss
和 win
只是整数,所以您的代码应该是:
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()
您只需将 loss
和 win
相加即可。此外,由于整数的定义非常严格,因此使用这样的 if/elif/else
链涵盖了所有可能性。