es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

temporizador de Python para la entrada

Escribí un programa de preguntas en Python. Aquí tienes el fragmento de código:

count = 0
while count < 100:
    answer = "algo"
    while input() != answer:
        print("INCORRECTO")
    print("CORRECTO")
    count += 1

Este programa me hace 100 preguntas. Quiero que la respuesta se muestre y pase al siguiente programa si me quedo atascado y no puedo escribir ninguna respuesta durante 10 segundos.
¿Cómo puedo lograr esto?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para lograr esto, puedes hacer uso del parámetro timeout de la función input. Aquí tienes una versión actualizada del código que debería funcionar:

    import sys
    import time
    
    count = 0
    while count < 100:
        answer = "algo"
        try:
            # Espera la entrada del usuario, durante un máximo de 10 segundos
            user_input = input(timeout=10)
        except:
            # Si el usuario no responde a tiempo, pasa a la siguiente pregunta
            print("¡SE ACABÓ EL TIEMPO!")
            continue
        if user_input == answer:
            print("CORRECTO")
            count += 1
        else:
            print("INCORRECTO")
    

    En esta versión actualizada del código, hemos agregado un bloque try-except alrededor de la función input, y especificado un timeout de 10 segundos. Si el usuario no ingresa nada dentro de los 10 segundos, se generará una excepción y pasaremos a la siguiente pregunta. Si el usuario ingresa la respuesta correcta, pasaremos a la siguiente pregunta, de lo contrario seguiremos solicitándole la respuesta correcta hasta que la obtenga.

Comments are closed.