[Python] Lettura buffer di tastiera.

Marco Beri marcoberi a gmail.com
Sab 21 Giu 2014 12:45:03 CEST


2014-06-21 12:32 GMT+02:00 Gabriele Battaglia <iz4apu a libero.it>:

> Il programma, che deve girare sotto Windows e in console, sarebbe un test.
> Devono comparire a video delle domande chiuse, quelle a scelta multipla
> del tipo A, B, C oD.
> L’utente deve rispondere premendo la lettera corrispondente alla risposta
> scelta. Ogni domanda prevede, in base al livello di complessità, un diverso
> ammontare di tempo, trascorso il quale, se l’utente non ha ancora risposto,
> si passa alla domanda successiva, oppure una delle risposte sbagliate non è
> più selezionabile.
> Perciò, mentre l’esaminando pensa, io ho bisogno che il flusso del
> programma continui a girare normalmente perché deve gestire dei timer.
> Chiaramente, se uso raw_input, o msvcrt.getch(), non posso più fare nulla
> perché tutto si blocca finché l’utente non batte un tasto.
>

Ok, tutto chiaro. La soluzione del tuo caso è questa:
http://stackoverflow.com/questions/2408560/python-nonblocking-console-input

Ti copio incollo il codice per fare prima. L'ho messo dopo la mia firma
(dimmi se posso/devo fare qualcosa per facilitarti).

Ciao.
Marco.




import msvcrt

num = 0
done = False
while not done:
    print num
    num += 1

    if msvcrt.kbhit():
        print "you pressed",msvcrt.getch(),"so now i will quit"
        done = True
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20140621/c177a751/attachment-0001.html>


Maggiori informazioni sulla lista Python