2014-06-21 3:32 GMT-07:00 Gabriele Battaglia <iz4...@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.


Per una cosa del genere, probabilmente userei i signals

http://dpaste.com/3MJ5WYT

>>> import signal
>>> def next_question(timeout, interval):
...   print("\ntime's up! next question:\n")
...   raise KeyboardInterrupt()
...
>>> signal.signal(signal.SIGALRM, next_question)
<function next_question at 0x7faead150b70>
>>> questions = ['a', 'b', 'c']
>>> def run_questions():
...   for question in questions:
...     signal.alarm(10)
...     try:
...       print('your answer was: ' + input(question + '?\n'))
...     except KeyboardInterrupt:
...       pass
...   else:
...     print('no more questions!')
...
>>> run_questions()
a?

time's up! next question:

b?
ccc
your answer was: ccc
c?

time's up! next question:

no more questions!
>>>

Ovviamente su windows SIGALRM non lo puoi utilizzare (ma forse con
cygwin puoi?) ma se usi signal.setitimer invece di signal.alarm con un
diverso segnale (forse SIGINT?) dovresti farlo funzionare
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a