Informatique et sciences du numérique Lycée Pierre Émile Martin
L – Gestion du temps
Créer une animation ( balle qui rebondie, personnage qui avance, projectiles qui tombent)
nécessite une boucle « répéter , à intervalle de temps régulier ». Pour cela deux outils sont utiles sous Python.
A partir du module time. Il contient deux fonctions essentielles
Pour plus de clarté Tester en Console Python ( fenêtre du bas dans Edupython), les instructions suivantes.
>>> from time import*
>>> time()
>>> sleep(10)
>>> debut=time()
>>> fin=time()
>>> print(round(fin – debut))
Ex L1 : Minuteur
Écrire un petit programme qui affiche un compte à rebours de 5s comme ci-contre.
A partir du module tkinter
Attention : la fonction à appeler s'écrit sans paramètres ni parenthèse, comme pour l'option command d'un bouton.
Ex L2 : Bouton Minuteur
Voici par exemple un programme affichant un compteur
à partir de 0 secondes puis augmentant indéfiniment.
Le transformer en minuteur comme le précédent :
à partir de 10 s jusqu'à 0.
def chrono():
# on arrive ici toutes les 1000 ms
global actu
Minuteur.config(text='Debut depuis '+str(actu)+' s' )
actu=actu+1
fen.after(1000,chrono)
#####################################
from tkinter import *
from time import *
fen = Tk()
fen.title("minuteur")
actu=0
Minuteur=Label(fen,text="Debut depuis 0 s")
Minuteur.pack()
chrono()
fen.mainloop()
Supplément pour les rapides :
Faites un jeu où vous avez 10s pour désamorcer une bombe en cliquant sur un bouton
sleep( t ) : Effectue une pause de t secondes. Mais tout le programme est en pause<!
time() : Renvoie l'heure POSIX. C'est à dire le nombre de secondes écoulées depuis le 1er Janvier 1970.
Peu pratique pour avoir la date, mais permet de mesurer des intervalles de temps.
La méthode 'after' permet de déclencher une fonction après un délai précisé en millisecondes.
En voici la syntaxe<: fenetre.after ( delai, fonction)