Buenas como va? ;D
Ando creando un programa en Python 3.6 y necesito realizar una funcion que, cuando pida al usuario que ingrese por teclado una opcion de la lista de opciones disponibles las cuales va a visualizar por pantalla, si el usuario no ingresa ninguna de las opciones, transcurrido cierto tiempo (supongamos 10 segundos) se ponga una opcion por default (la cual la elijo yo).
Si alguno me podria dar una ayuda con esto se lo agradeceria mucho ;D
Hola Keloo, Nose bien como hacer lo que estas buscando pero creo que podrias investigar por el lado del Threading.
https://docs.python.org/3/library/threading.html#timer-objects
Eso seria para que si el usuario introduce un numero al segundo 5 no tengas que esperar los 30s.
si lo unico que queres hacer es detener el programa esos 30s lo deberias hacer con el metodo "Sleep"
Asique puedes investigar sobre 1-Threading 2-Timer 3-Sleep/Delay
Espero que te sea de ayuda!
@Kelo_07 (https://underc0de.org/foro/index.php?action=profile;u=63325)
La mejor respuesta te la brindo @Bartz (https://underc0de.org/foro/index.php?action=profile;u=66687).
Aqui te doy un ejemplo de lo que deseas:
#!/usr/bin/python2
# -*- coding: UTF-8 -*-
from thread import start_new_thread
from time import sleep
tiempo_para_parar = 10 # En segundos por supuesto
v_parar = True
def parar():
global tiempo_para_parar, v_parar
sleep(tiempo_para_parar)
if (v_parar):
print "El tiempo a caducado, Debes insertar una opcion"
exit()
output = start_new_thread(parar, ())
print """
[1] - Una opcion
[2] - Otra opcion
[3] - Salir
Debe insertar una opcion antes de \"%s\" segundos
""" % (str(tiempo_para_parar))
while True:
try:
debug = raw_input("=> ")
if not debug:
continue
if debug == "1":
print "Haz presionado una opcion"
v_parar = False
elif debug == "2":
print "Haz presionado otra opcion"
v_parar = False
elif debug == "3":
sys.exit()
else:
print "Opcion incorrecta"
except:
exit()
Puedes usar la libreria time para el conteo de los 10s