elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Tiempo y Python!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Tiempo y Python!  (Leído 4,253 veces)
deleted_account

Desconectado Desconectado

Mensajes: 58



Ver Perfil
Tiempo y Python!
« en: 30 Agosto 2017, 01:17 am »

HOLA!
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Estoy creando un pequeño programa en Python! Pero, me surgió una gran pregunta...¿Cómo puedo dar un tiempo límite para que el usuario ingrese un dato?
No se si me explico con la pregunta... En mi código, me gustaría que el usuario tenga que ingresar un dato... Pero, si el usuario no ingresó el dato después de 5 segundos, Mueste un mensaje que diga "Perdiste!".

DATOS A TENER EN CUENTA :
*SOY NOVATO XD
*TRABAJO EN PYTHON 3.6
*MI SISTEMA OPERATIVO ES WINDOWS 10

GRACIAS POR LEER MI MENSAJE!
Espero su respuesta!

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
New Moments, New Life!




« Última modificación: 30 Agosto 2017, 01:18 am por Thiamatt » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Tiempo y Python!
« Respuesta #1 en: 30 Agosto 2017, 02:05 am »

lamentablemente no tiene respuesta simple... yo te recomendaría hacerlo como un hilo aparte o usar señales...

no se si señales funcione bien en windows, pero aquí un codigo simple
Código
  1. import signal
  2.  
  3. def interrupcion(signum, frame):
  4. print("perdiste")
  5. print("presiona enter para continuar")
  6.  
  7. signal.signal(signal.SIGALRM, interrupcion) #cargamos la interrupción
  8.  
  9. def leerEntrada(texto, tiempo): #definimos nuestro propio input
  10. def interno(texto): #con una funcion contenida >:)
  11.  return input(texto)
  12. signal.alarm(tiempo) #activamos la alarma
  13. retorno = interno(texto) #esperamos el retorno
  14. signal.alarm(0) #desactivamos la alarma
  15. return retorno #retornamos
  16.  
  17.  
  18. valor = leerEntrada("Tienes 5 segundos para responder: ", 5) #texto, tiempo
  19. print ("valor: ", valor)
  20.  
  21.  


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Tiempo y Python!
« Respuesta #2 en: 30 Agosto 2017, 02:16 am »

hace ya mucho tiempo mostré una implementación de como lo resolvía.
Código
  1. #-*- coding:utf-8 -*-
  2. import msvcrt
  3. import time
  4.  
  5.  
  6. def input_tiempo(aviso = ">>>",duracion=5):
  7.    global nombre
  8.    nombre=""
  9.    print (aviso)    
  10.    finaliza = time.time() + duracion
  11.    while time.time()< finaliza:
  12.        if msvcrt.kbhit():
  13.            letra= msvcrt.getche().decode('ASCII')
  14.            if letra == "\r":
  15.                break
  16.            else:
  17.                nombre+= letra
  18.  
  19. q=input_tiempo("Escribe tu nombre: ")
  20. if nombre != "":
  21.    print("\nHola ¡¡ {} !!".format(nombre))
  22. else:
  23.    print("Perdiste")    
  24. input()
  25.  
  26.  
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Tiempo y Python!
« Respuesta #3 en: 30 Agosto 2017, 02:37 am »

la solucion ideal es la de tincopasan, aunque hay una cosita que no me gusta

linea 7, declaras nombre como global, pero esto parece inapropiado a primera vista, no sería mejor retornarlo?


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
deleted_account

Desconectado Desconectado

Mensajes: 58



Ver Perfil
Re: Tiempo y Python!
« Respuesta #4 en: 30 Agosto 2017, 03:38 am »

Gracias por sus respuestas!
Voy a intentarlo!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
python ¿como poner tiempo?(Solucionado)
Scripting
desnight 2 5,936 Último mensaje 13 Marzo 2008, 15:21 pm
por VortheX
[Python]¿Ejecutar instrucciones al mismo tiempo?
Python
S3kh 1 3,534 Último mensaje 2 Octubre 2011, 21:08 pm
por calk9
[Python] Ejecutar comando y matarlo al cabo del tiempo.
Python
Distorsion 2 4,195 Último mensaje 10 Enero 2012, 15:42 pm
por Distorsion
Programar Python a tiempo real varias personas
Scripting
AresG21 4 4,412 Último mensaje 2 Febrero 2015, 22:03 pm
por flacc
Contador de tiempo en Python
Scripting
duRRR 3 10,430 Último mensaje 27 Mayo 2015, 06:26 am
por 0x5d
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines