0

我使用 Microbit 计算机为一个学校项目编写了这个短代码,但是,当我在计数为 1 时按下 a 按钮时,计数跳到 16,我不知道为什么。

count = (1)

while True:
    gesture = accelerometer.current_gesture()
    display.show(count)
    if button_a.is_pressed():
        count *= (2)
    if button_b.is_pressed():
        count += (1)
    if gesture == "shake":
        count = (1)

任何帮助将不胜感激!

4

2 回答 2

2

如果每次单击时计数并不总是增加 16,则您可能正在处理按钮去弹跳问题。就像其他人建议的那样,您可以使用它sleep(1)来检查是否是这种情况,但对于更实际的解决方案,您可以执行以下操作:

# detect click of button
if button.is_pressed():
    count += 1
    # do nothing while button remains clicked for the duration
    while button.is_pressed():
        pass
于 2019-11-19T21:07:28.403 回答
1

正如其他贡献者所评论的那样,对于单个按钮按下,检测到不止一个按钮按下。

使用 Micropython,为了避免在单个按钮按下时检测到重复按钮按下,请使用以下代码:

if button_a.was_pressed():

代替:

if button_a.is_pressed():
于 2019-11-20T18:57:42.367 回答