You need to enable JavaScript to run this app. 树莓派使用gpiozero控制LED实现答题反馈时仅首次闪烁后续无响应
优惠活动
大模型
产品
解决方案
定价
更多

树莓派使用gpiozero控制LED实现答题反馈时仅首次闪烁后续无响应

核心问题定位
  • 全局计数变量i未做轮次重置:i在程序启动时初始化为0,仅在第一轮答题过程中会从0逐步累加至循环退出阈值,后续所有答题轮次中i始终保持大于循环判断阈值的状态,直接跳过内层LED闪烁的执行逻辑。
  • 循环逻辑冗余:代码中两个独立的if判断没有做分支衔接,虽然场景下两个判断不会同时为真,但存在无意义的重复判断。
  • 类型处理疏漏:题目数量使用float类型接收,存在浮点边界判断的潜在风险;原循环条件while i <=10实际会执行11次闪烁操作,和预期的10次闪烁效果不匹配。
修正后可实现预期效果的代码
from gpiozero import LED
from time import sleep
import random

led_g = LED(4)
led_r = LED(17)
n = 0
print("How many equations do you want to make?")
# 以整数类型接收题目数量,消除浮点判断风险
s = int(input())

while n < s:
    # 每轮答题开始前重置闪烁计数器
    i = 0
    a = random.randint(1, 10)
    b = random.randint(1, 10)
    q = a + b
    print("What is", a, "+", b, "?")
    x = float(input())

    # 循环执行10次闪烁,按答题结果选择对应LED
    while i < 10:
        if x == q:
            led_g.on()
            sleep(0.1)
            led_g.off()
            sleep(0.1)
        else:
            led_r.on()
            sleep(0.1)
            led_r.off()
            sleep(0.1)
        i += 1
    n += 1

内容的提问来源于stack exchange,提问作者Paul.0416

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.13 15:15:03