Écris un script Python ci-dessous et clique sur « Lancer » pour l'exécuter. Il a accès à un petit écran, 3 boutons et une console.
Choisis une notion Python ou une fonction pour voir son explication ci-dessous.
Choisis une notion Python à gauche, ou une fonction de Roberto à droite, pour voir son explication ici.
Un programme Python s'exécute ligne par ligne, du haut vers le bas, dans l'ordre où tu les as écrites. Chaque instruction se termine avant que la suivante ne commence : il n'y a pas de « en même temps ».
clear_display()
text_display("Un", x=10, y=10)
text_display("Deux", x=10, y=30)
text_display("Trois", x=10, y=50)
"Un" est dessiné, puis "Deux" en dessous, puis "Trois" en dessous : toujours dans cet ordre, jamais dans un autre.
Affiche sur l'écran, dans l'ordre : ton prénom (y=10), puis l'heure juste en dessous (y=30), puis la date encore en dessous (y=50). Utilise plusieurs instructions text_display les unes après les autres.
Il te faut 3 appels à text_display, un pour chaque ligne, avec un y différent à chaque fois (10, 30 puis 50). N'oublie pas clear_display() avant.
clear_display()
text_display("Roberto", x=10, y=10)
text_display(get_time(), x=10, y=30)
text_display(get_date(), x=10, y=50)
Un commentaire est une ligne que Python ignore complètement : elle sert uniquement à toi, pour expliquer ton code.
Pour écrire un commentaire, on met un # devant le texte. Tout ce qui suit sur la même ligne n'est pas exécuté.
# Ce programme affiche "Un"
clear_display()
text_display("Un", x=10, y=10) # ceci s'affiche en haut de l'écran
Les deux lignes commençant par # (ou contenant #) n'ont aucun effet sur le programme : seul clear_display() et text_display(...) sont réellement exécutés.
Ajoute un commentaire au-dessus de ton code pour expliquer ce qu'il fait, puis affiche ton prénom à l'écran.
Commence ta ligne de commentaire par #. Le commentaire n'a pas besoin d'être exact, l'important est de t'entraîner à en écrire un.
# Affiche mon prénom à l'écran
clear_display()
text_display("Roberto", x=10, y=10)
L'instruction while True: permet de répéter des instructions indéfiniment, sans jamais s'arrêter.
Tout ce qui est écrit en dessous et légèrement décalé vers la droite (indenté) sera répété en boucle, pour toujours.
import time
while True:
print("Bonjour !")
time.sleep(1)
Le texte "Bonjour" est réaffiché sans arrêt, encore et encore, jusqu'à ce que tu cliques sur "Arrêter" car il est indenté sous le while True:.
Affiche l'heure sur l'écran, et mets-la à jour toutes les secondes, pour toujours.
Utilise while True:, puis dans la boucle : clear_display(), text_display(get_time(), ...), et termine par time.sleep(1).
import time
while True:
clear_display()
text_display(get_time(), x=10, y=10)
time.sleep(1)
time.sleep(secondes) met le programme en pause pendant le nombre de secondes indiqué, avant de continuer. Le nombre entre parenthèses peut être décimal : time.sleep(0.5) fait une pause d'une demi-seconde.
Dans un while True:, c'est indispensable : sans pause, la boucle tourne des milliers de fois par seconde, beaucoup trop vite pour qu'on puisse suivre ce qui se passe.
import time
while True:
print("Tic")
time.sleep(1)
"Tic" ne s'affiche qu'une seule fois par seconde : time.sleep(1) met le programme en pause pendant 1 seconde à chaque tour de boucle, avant de recommencer.
Affiche "Tic" puis "Tac" en alternance dans la console, avec une pause d'une demi-seconde entre chaque affichage.
Dans un while True:, enchaîne : print("Tic"), time.sleep(0.5), print("Tac"), time.sleep(0.5).
import time
while True:
print("Tic")
time.sleep(0.5)
print("Tac")
time.sleep(0.5)
Une condition, c'est quelque chose qui vaut soit True (vrai), soit False (faux). Rien d'autre.
Par exemple, 10 >= 12 est une condition : elle vaut True si c'est vrai, False sinon.
Attention : pour comparer deux valeurs, on utilise deux signes égal ==, pas un seul. Un seul = sert à autre chose, pas à comparer.
Certaines fonctions, comme is_button_pressed(1), renvoient directement True ou False, sans avoir besoin de comparaison.
print(10 >= 12) # affiche 'est ce que 10 est plus grand ou égal à 12 ?' print(5 == 5) # affiche 'est ce que 5 est egal à 5 ?' print(is_button_pressed(1)) 'affiche 'est ce que le bouton est appuyé ?'
La console affiche False, puis True, puis True ou False selon que tu appuies sur le bouton ou non. Une condition, c'est toujours l'un ou l'autre : jamais autre chose.
Affiche dans la console si l'heure actuelle (get_time()) est égale à "12:00".
Pour comparer deux valeurs, utilise == (deux signes égal), pas =. Pense à mettre ta comparaison dans un print(...) pour voir le résultat.
print(get_time() == "12:00")
if : le programme fait des choixif condition: n'exécute le bloc de code indenté en dessous que si condition vaut True. Sinon, ce bloc est simplement ignoré.
import time
while True:
if is_button_pressed(1):
print("Bouton pressé !") # cette ligne est indenté (décalée) par rapport au `if`, elle ne s’exécutera que si la condition du if est `True` (vraie)
time.sleep(0.1) # cette ligne est alignée avec le `if`, elle s'execute même si la condition du `if` est `False` (fausse)
Le programme vérifie sans arrêt si le bouton 1 est pressé grâce à while true:. Le message ne s'affiche dans la console que les fois où c'est le cas : sinon, rien ne se passe.
Affiche "Pressé !" sur l'écran, uniquement quand le bouton 1 est enfoncé.
Utilise if is_button_pressed(1): suivi d'un bloc indenté avec text_display(...). Mets tout ça dans une boucle while True:, avec clear_display() avant et time.sleep(0.05) après.
import time
while True:
clear_display()
if is_button_pressed(1):
text_display("Pressé !", x=10, y=10)
time.sleep(0.05)
if / else : deux chemins possiblesTu connais déjà if condition: : il exécute un bloc seulement si la condition est vraie, et ne fait rien sinon.
else: permet d'ajouter un deuxième bloc, qui s'exécute uniquement quand la condition est fausse. Ton programme fait alors toujours l'un des deux blocs : jamais aucun, jamais les deux.
import time
while True:
clear_display()
if is_button_pressed(1):
text_display("Pressé !", x=10, y=10) # ce bloc ne s'exécute que si le bouton 1 est appuyé (condition vraie)
else:
text_display("En attente...", x=10, y=10) # ce bloc ne s'exécute que si le bouton 1 n'est pas appuyé (condition fausse)
time.sleep(0.05)
L'écran affiche toujours quelque chose : soit « Pressé ! » quand tu appuies sur le bouton 1, soit « En attente... » sinon. Jamais les deux en même temps, jamais rien du tout.
Affiche sur l'écran « Midi ! » si l'heure actuelle (get_time()) est égale à "12:00", et l'heure normale sinon.
Utilise if get_time() == "12:00": puis un bloc else:. Mets tout ça dans une boucle while True:, avec clear_display() avant et time.sleep(1) après.
import time
while True:
clear_display()
if get_time() == "12:00":
text_display("Midi !", x=10, y=10)
else:
text_display(get_time(), x=10, y=10)
time.sleep(1)
text_display(texte, x=0, y=0)Affiche du texte sur l'écran (240×280), à la position (x, y).
text_display("Bonjour", x=10, y=10)
clear_display()Efface l'écran (utile au début de chaque tour de boucle).
clear_display()
print(texte)Affiche du texte dans la console.
print("compteur =", compteur)
get_time()Renvoie l'heure sous la forme "hh:mm".
text_display(get_time(), x=10, y=10)
get_date()Renvoie la date sous la forme "lundi 12 Nov.".
text_display(get_date(), x=10, y=10)
is_button_pressed(n)True si le bouton n (1, 2 ou 3) est enfoncé en ce moment, sinon False.
if is_button_pressed(1):
text_display("Pressé !", x=10, y=10)
button_pressed_edge(n)True une seule fois, au moment où le bouton n vient d'être appuyé (à utiliser dans un if, dans une boucle).
if button_pressed_edge(1):
compteur += 1