Maison > développement back-end > Tutoriel Python > Comment puis-je implémenter un délai d'attente pour la saisie utilisateur en Python ?

Comment puis-je implémenter un délai d'attente pour la saisie utilisateur en Python ?

Mary-Kate Olsen
Libérer: 2024-11-15 13:30:02
original
431 Les gens l'ont consulté

How Can I Implement a Timeout for User Input in Python?

Délai d'expiration pour la saisie utilisateur en Python

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal