Saisie clavier temporisée : une solution rapide
Dans le domaine de la programmation, il est souvent nécessaire de demander aux utilisateurs une saisie tout en imposant une heure contrainte. Ce scénario se produit lorsque vous devez contrôler la durée des réponses des utilisateurs. Mais comment y parvenir efficacement ?
Saisie avec délai d'attente : un défi revisité
Certaines tentatives d'implémentation de la saisie au clavier avec délai d'attente se sont heurtées à des obstacles. Par exemple, le fil de discussion référencé sur http://mail.python.org/pipermail/python-list/2006-January/533215.html suggère une solution. Cependant, ces méthodes tombent souvent sur une erreur : "
Solution : exploiter la puissance de Select
Bien que l'approche précédente puisse sembler prometteuse, une solution plus concise et portable peut être trouvée en utilisant un select appel :
import sys, select print("You have ten seconds to answer!") i, o, e = select.select([sys.stdin], [], [], 10) if (i): print("You said", sys.stdin.readline().strip()) else: print("You said nothing!")
Ce code démontre une solution de contournement intelligente. Il vérifie si une entrée est prête sans la lire. Si une entrée est disponible dans le délai d'attente de 10 secondes, il procède à la lecture de l'entrée et à son affichage. Si aucune entrée n'est reçue, cela informe l'utilisateur qu'il n'a pas répondu à temps.
Cette approche est robuste, portable sur différentes plates-formes et fournit un moyen propre et efficace de gérer la saisie au clavier avec un délai d'attente. Ainsi, la prochaine fois que vous souhaiterez accorder à vos utilisateurs un temps limité pour répondre à votre invite, pensez à la puissance de l'appel de sélection.
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!