El objetivo del script es que lea de un puerto un valor cada X tiempo (uso de la función sleep) y lo ponga en pantalla.
En principio parece una tarea muy sencilla, pero no se como usar correctamente la funcion sleep.
Entonces he empezado por crear un programa alternativo que simplemente pregunte la frecuencia de lectura del valor y la imprima (la frecuencia, no el valor).
Para ello he creado este codigo, pero me falta saber como asegurarme que la frecuencia que lea sea un numero entero comprendido entre el 0.1 y el 2, por ejemplo:
Cita:
Al ejecutar este codigo, me da un error porque considera a "often" como float en vez de str (o al reves):def datos():
often= input("How often do you want to print the result? (In seconds) Please, enter a value between 0.1 and 2.")
while not (str.isdigit(often) and (often>=0.1)and(often<=2)):
often=input("How often do you want to print the result? (In seconds) Please, enter a value between 0.1 and 2.")
often= input("How often do you want to print the result? (In seconds) Please, enter a value between 0.1 and 2.")
while not (str.isdigit(often) and (often>=0.1)and(often<=2)):
often=input("How often do you want to print the result? (In seconds) Please, enter a value between 0.1 and 2.")
Cita:
Alguna idea con ésto?Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
datos()
File "<pyshell#1>", line 4, in datos
while not (str.isdigit(often) and (often>=0.1)and(often<=2)):
TypeError: unorderable types: str() >= float()
File "<pyshell#2>", line 1, in <module>
datos()
File "<pyshell#1>", line 4, in datos
while not (str.isdigit(often) and (often>=0.1)and(often<=2)):
TypeError: unorderable types: str() >= float()
La otra duda, es la implementación de la funcion sleep, que sería algo así:
Cita:
Muchas gracias por vuestra ayuda amigos.veces=0
while veces<100:
time.sleep (often) #esta es la función que no se utilizar
veces=veces+1
while veces<100:
time.sleep (often) #esta es la función que no se utilizar
veces=veces+1
Un saludo, Javier