En Python, la fonction raw_input() invite l'utilisateur à entrer, mais elle attend indéfiniment jusqu'à ce que l'utilisateur entre quelque chose. Pour les situations où vous devez imposer une limite de temps à la saisie de l'utilisateur, une solution est disponible en utilisant le module de threading.
La fonction raw_input_with_timeout(), telle que proposée par un utilisateur, prend deux arguments : prompt (le texte affiché à l'utilisateur) et le délai d'attente (le délai en secondes). Il démarre un thread de minuterie qui interrompra le thread principal après le délai d'attente spécifié.
Voici une version améliorée du code :
import threading 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
Si l'utilisateur saisit une entrée avant le délai d'expiration, l'entrée est renvoyé sous forme de chaîne. Si le délai d'attente est atteint, Aucun est renvoyé pour indiquer que l'utilisateur n'a pas fourni de saisie dans le délai spécifié.
Notez que cette solution suppose que l'utilisateur ne tape pas très lentement. Si vous devez tenir compte d'une saisie lente, vous pouvez recalculer finishat (l'heure à laquelle le délai d'attente se produit) après chaque saisie de caractère.
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!