• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dlaczego po puszczeniu klawisza ten program dalej zachowuje się jakby był on wciśnięty?

Object Storage Arubacloud
+1 głos
240 wizyt
pytanie zadane 30 marca 2021 w Python przez tonn204 Mądrala (7,440 p.)

Witam, chciałem napisać taki prosty program, który będzie reagował na naciśnięcie jakiegoś przycisku. Napotkałem na pewien problem, którego zupełnie nie rozumiem, mianowicie puszczeniu spacji przez kilka sekund w systemie jest ona wciskana (widzę jak przesuwa się kursor w dokumencie tekstowym) Dlaczego tak się dzieje i jak mogę to wyeliminować ?

import keyboard

lkey = False

while True:
    if keyboard.is_pressed("space"):
        if lkey:
            print("space is pressed")
            lkey = False
    else:                                                                                    
        lkey = True

    

 

1 odpowiedź

0 głosów
odpowiedź 31 marca 2021 przez niezalogowany
import keyboard

lkey = True
while lkey:
    if keyboard.is_pressed("space"):
        if lkey:
            print("space is pressed")
        lkey = False
    else:
        lkey = True
        print("Jabadaba doooo!")

Twój kod po poprawkach który działa ale ...można to zrobić odrobinkę prościej do czego  Ciebie serdecznie zachęcam.wink 

Na początek upewnij się że pobrałeś odpowiedni pakiet

pip install keyboard

Pomieszałeś trochę kod i wyszedł bigos.Jeśli ustwiłeś Flage  lkey to czemu nie wstwiłeś jej do pętli ? Flaga powinna być ustawion na true i wtedy Twój kod działa .smiley  Przeanalizuj ten kod na spokojnie bo ja nie jestem dobry w tłumaczeniu dosłownym wolę robić to za pomocą przykładu smileywybacz...wink Ja bym to zrobił tak :

import keyboard


active = True
while active:
    if keyboard.is_pressed('space'):
        print("Space Bar was pressed...")
        active = False
    else:
        print("While Loop is running .Please press the spacebar..")

za pomocą flagi smiley

while True:
    if keyboard.is_pressed("space"):
        print("Space Bar was pressed...")
        break
    else:
        print('While Loop is Still Running')

a tutaj prościej bez Flagi.

wink

Pozdrawiam i Powodzenia w Nauce życzę coolyes

 

Podobne pytania

0 głosów
4 odpowiedzi 6,073 wizyt
pytanie zadane 7 listopada 2016 w Python przez MR.X Użytkownik (860 p.)
0 głosów
1 odpowiedź 256 wizyt

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...