Forum EduPython

Echanges autour d'EduPython.

Vous n'êtes pas identifié(e).

#1 2021-03-03 20:57:36

cmau
Membre
Inscription : 2021-03-03
Messages : 4

délai de réponse de la fonction input

bonjour, cette question a déjà été posée par un autre utilisateur mais désolé je n'ai pas compris la réponse via un entry

la fonction "input" impose un temps maximum de réponse, peut-on supprimer ce délai ?

Merci

Hors ligne

#2 2021-03-06 10:21:24

magicvinni
Administrateur
Inscription : 2017-12-22
Messages : 294

Re : délai de réponse de la fonction input

Bonjour, je ne comprends pas ce que vous voulez faire : soit vous avez votre propre interface avec un Entry, soit vous utilisez un input, mais il faut éviter d'utiliser les deux solutions ensemble selon moi.

VM

Hors ligne

#3 2021-03-06 16:26:45

cmau
Membre
Inscription : 2021-03-03
Messages : 4

Re : délai de réponse de la fonction input

bonjour je veux demander une saisie mais laisser un temps suffisamment long pour répondre

avec input on a qu'une vingtaine de de secondes pour répondre

exemple

T=input("température ?")
print(T)

Evidemment le programme est plus long que ça.

Merci

Hors ligne

#4 2021-03-06 16:50:43

magicvinni
Administrateur
Inscription : 2017-12-22
Messages : 294

Re : délai de réponse de la fonction input

En effet, je ne savais pas (où j'avais oublié) qu'il y avait un temps limité pour le input. Voici un code qui n'ouvre pas de fenêtre trouvé sur le net :

# Créé par vince, le 06/03/2021 en Python 3.7
import sys, time, msvcrt

def readInput( caption, default, timeout = 5):
    start_time = time.time()
    sys.stdout.write('%s(%s):'%(caption, default));
    input = ''
    while True:
        if msvcrt.kbhit():
            chr = msvcrt.getche()
            if ord(chr) == 13: # enter_key
                break
            elif ord(chr) >= 32: #space_char
                input += chr
        if len(input) == 0 and (time.time() - start_time) > timeout:
            break

    print ('')  # needed to move to next line
    if len(input) > 0:
        return input
    else:
        return default

# and some examples of usage
ans = readInput('Please type a name', 'john')
print ('The name is %s'% ans)
ans = readInput('Please enter a number', 10 )
print ('The number is %s' % ans)

Est ce que ça irait ?

Hors ligne

#5 2021-03-06 17:58:30

cmau
Membre
Inscription : 2021-03-03
Messages : 4

Re : délai de réponse de la fonction input

j'ai testé le programme, c'est encore plus rapide qu'un input, le programme se termine si pas de réponse immédiate

Hors ligne

#6 2021-03-06 21:20:56

magicvinni
Administrateur
Inscription : 2017-12-22
Messages : 294

Re : délai de réponse de la fonction input

Oui, bien sûr, il faut l'adapter, l'appel de la fonction présentée est :

readInput(texte à afficher, valeur par défaut, temps d'attente maxi)

VM

Hors ligne

#7 2021-03-06 22:06:54

cmau
Membre
Inscription : 2021-03-03
Messages : 4

Re : délai de réponse de la fonction input

ok merci je vais essayer de creuser mais j'avoue que j'ai du mal

Hors ligne

Pied de page des forums