возникли проблемы с кодом, не работающим с Raspberry pi

#python #raspberry-pi #mu

#python #raspberry-pi #mu

Вопрос:

 enter code here
led = LED(17)
led.off()

player_1 = Button(2)
player_2 = Button(3)

time = random.uniform(2, 5)
sleep(time)
led.on()
twoscore = 0
onescore = 0

restart = True

while restart == True:
    restart = False
    if player_1.is_pressed:
        onescore  = 1
        print("player one score: "   str(onescore))
        led.off()
        restart = True
    if player_2.is_pressed:
        twoscore  = 1
        print("player two score: "   str(twoscore))
        led.off()
        restart = True
  

при нажатии кнопки индикатор не гаснет
, это проблема с циклом while?
больше деталей больше деталей больше деталей

Ответ №1:

Я думаю, что проблема в строках:

 while restart == True:
    restart = False
  

Для параметра Restart установлено значение False, а затем ваш код выходит из цикла сразу после первой итерации.

Попробуйте что-то вроде:

 restart = True

while restart == True:
    if player_1.is_pressed:
        onescore  = 1
        print("player one score: "   str(onescore))
        led.off()
        restart = False
    if player_2.is_pressed:
        twoscore  = 1
        print("player two score: "   str(twoscore))
        led.off()
        restart = False
  

Дайте мне знать, если это сработает.

Еще лучше, если вы могли бы написать:

 while True:
    if player_1.is_pressed:
        onescore  = 1
        print("player one score: "   str(onescore))
        led.off()
        break
    if player_2.is_pressed:
        twoscore  = 1
        print("player two score: "   str(twoscore))
        led.off()
        break
  

Это то, что вы хотите, чтобы произошло?

Комментарии:

1. Собираюсь попробовать сейчас, спасибо!

2. Со вторым я не хочу заканчивать код, а вместо этого создать систему подсчета очков. завершает ли break код или цикл while?

3. Он просто завершает цикл while — он «выходит» из цикла