MRAB python at mrabarnett.plus.com
Fri Sep 11 20:49:15 CEST 2015

On 2015-09-11 19:24, John McKenzie wrote:
>   Hello.
>   Thanks to the help of people here and in other newsgroups I seem to have
> something working doing the basics. (Buttons work, colours light up
> appropriately.)
>   When I followed MRAB's instructions and read about scopes of variables
> that solved my most recent problem, but it introduced a bug. I think I
> fixed the bug but after all my stupid mistakes and forgetfulness that
> seems too good to be true. I expect there is a better, more elegant, or
> more Pythonic way to do what I did so please feel free to share on the
> subject.
>   I had a problem where if I pressed a button while the LEDs were already
> flashing the colour of that button it would block a new colour from
> starting when I pressed a new button. So if the LED strip was red and I
> pressed the red button again nothing would happen when I pressed the blue
> or yellow button. Similar problem for the other two buttons.
>   So inside my callbacks I added this code:
>     if colour == 1:
>          pass
>      elif colour == 2 or 3:
>          colour = 1
>   Now it seems OK from my limited testing.

"colour == 2 or 3" means the same as "(colour == 2) or 3", where 3 is a
true value (zero is a false value; any non-zero number is a true value).

What you mean is "colour == 2 or colour == 3".

A shorter alternative is "colour in (2, 3)".

More information about the Python-list mailing list