Tout nouveau sur ce forum et tout nouveau en Python.
J'aimerais réaliser un petit programme qui consiste à lire une données toutes les x secondes, qui recommence indéfiniment et qui me permet d'effectuer quelques calculs pendant les x secondes.
Je résume :
(a) - je vais lire une donnée a
(b) - je lance une tempo
- pendant ce temps, j'effectue quelques calculs
(c) - la tempo terminée, je recommence (a)
J'ai cherché mais...
Merci à celui (ou ceux) qui peuvent me mettre sur la voie
Faudrait utiliser l'heure alors, avec un module comme datetime par exemple, pour calculer le temps écoulé depuis le moment où tu as lancé le calcul et non pas ajouter un délai après avoir fini l'opération.
- Edité par LoupSolitaire 18 novembre 2019 à 3:36:00
Mais en vérité les calculs ne se feront pas exactement chaque 10 secondes car le calcul du temps + l'appel de fonction sleep créera un petit décalage multiplié par le nombre d'itération.
La fonction max est nécessaire au cas où le temps écoulé serait supérieur à 10 secondes (time.sleep ne prend pas les valeurs négatives ...)
Il y a aussi la possibilité de faire une pause jusqu'à ce que l'heure soit un multiple de 10 secondes :
import time
DELAI = 10
while True:
# calculs
time.sleep(max(0, DELAI - (time.time() % DELAI)))
Le max ici est théoriquement inutile mais bon on ne sait jamais, un arrondi foireux ...
- Edité par thelinekioubeur 18 novembre 2019 à 11:59:51
from tkinter import *
import time
compteur = 0
# fonction qui incrémente un compteur et qui boucle sur elle même
def incremente():
#Incrémente le compteur à chaque seconde"
global compteur
compteur += 1
LC['text'] = str(compteur) # label 1
LC.after(1000, incremente)
Mafenetre = Tk()
Mafenetre.title('Test')
Mafenetre.geometry('300x100+1000+500')
# label 1
LC = Label(Mafenetre, text = '-', bg='white', fg='black')
LC.place(x=2, y=2, width=100)
# label dans lequel j'aimerais afficher le compteur
# hors fonction
LE = Label(Mafenetre, text = '-', bg='white', fg='black')
LE.place(x=104, y=2, width=100)
LC.after(0, incremente)
# ce qui pose problème ???
#a = LC.get()
#LE.config(text=LC.get())
Mafenetre.mainloop()
Voilà. Dans la fonction 'incremente', j'affiche la valeur de compteur. Je voudrais cette valeur HORS de la fonction. ????
Merci
Faire boucler indéfiniment une tempo
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Blond, bouclé, toujours le sourire aux lèvres...
La vie c'est comme une boite de chocolat ça dure moins longtemps chez les gros.