限制变量的值,micropython
restrict value of variable, micropython
我目前正在努力学习 micropython
。我运行进入我的第一个问题是我不知道如何限制变量的值c
(应该是[0;11]
)
现在它总是激活 leds
-2
、-1
和 12
。我怎样才能限制它只激活 LED 0-11
?
import leds
import utime
import color
red=color.Color(255,0, 0)
green=color.Color(0, 255, 0)
blue=color.Color(0, 0, 255)
toright=True
a=0
b=0
c=0
while True:
leds.set(a, red)
leds.set(b, green)
leds.set(c, blue)
utime.sleep_ms(100)
leds.clear()
if toright==True:
a=a+1
b=a-1
c=a-2
else:
a=a-1
b=a+1
c=a+2
if a==10:
toright=False
if a==0:
toright=True
将数字保持在指定范围内的一种简单方法是使用 modulo 运算符。它returns除法余数。这是一个将数字保持在 12 范围内的示例:
>>> 13 % 12
1
>>> 5 % 12
5
>>> -2 %12
10
>>>
因此对于您的示例,您可以在 while 循环的顶部添加该行
c %= 12
强制c
的值在0-11
范围内
我目前正在努力学习 micropython
。我运行进入我的第一个问题是我不知道如何限制变量的值c
(应该是[0;11]
)
现在它总是激活 leds
-2
、-1
和 12
。我怎样才能限制它只激活 LED 0-11
?
import leds
import utime
import color
red=color.Color(255,0, 0)
green=color.Color(0, 255, 0)
blue=color.Color(0, 0, 255)
toright=True
a=0
b=0
c=0
while True:
leds.set(a, red)
leds.set(b, green)
leds.set(c, blue)
utime.sleep_ms(100)
leds.clear()
if toright==True:
a=a+1
b=a-1
c=a-2
else:
a=a-1
b=a+1
c=a+2
if a==10:
toright=False
if a==0:
toright=True
将数字保持在指定范围内的一种简单方法是使用 modulo 运算符。它returns除法余数。这是一个将数字保持在 12 范围内的示例:
>>> 13 % 12
1
>>> 5 % 12
5
>>> -2 %12
10
>>>
因此对于您的示例,您可以在 while 循环的顶部添加该行
c %= 12
强制c
的值在0-11