Saisie utilisateur limitée dans le temps avec entrée brute
En Python, la fonction raw_input() peut être utilisée pour demander à l'utilisateur une saisie. Cependant, il peut y avoir des scénarios dans lesquels vous souhaitez limiter le temps d'attente pour la saisie de l'utilisateur afin d'éviter de suspendre indéfiniment le programme.
Solution utilisant la minuterie de thread
Pour les plate-forme et des solutions spécifiques à Windows, vous pouvez utiliser threading.Timer à partir du module de threading. Importez les modules nécessaires :
import thread import threading
Définissez une fonction appelée raw_input_with_timeout :
def raw_input_with_timeout(prompt, timeout=30.0): print(prompt, end=' ') timer = threading.Timer(timeout, thread.interrupt_main) astring = None try: timer.start() astring = input(prompt) except KeyboardInterrupt: pass timer.cancel() return astring
Cette fonction imprime l'invite, démarre une minuterie et demande une saisie à l'utilisateur à l'aide de la saisie. Si l'utilisateur met plus de temps que le délai d'attente spécifié pour saisir, le minuteur interrompt le thread principal, provoquant le déclenchement d'une exception KeyboardInterrupt. La minuterie est annulée pour éviter de nouvelles interruptions.
Si le délai d'entrée expire, il renverra Aucun. Si l'utilisateur fournit une entrée avant l'expiration du délai d'attente, il renverra la chaîne saisie.
Remarque :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!