La vie a besoin d'illusions, c'est-à-dire de non-vérités tenues pour des vérités.
En programmation, les commentaires sont des portions du code source ignorées par le compilateur ou l’interpréteur, car ils ne sont pas nécessaires à l’exécution du programme.
On commente un code source en Python pour en simplifier sa lisibilité, et gagner du temps dans la ré-utilisation de parties de code sur lesquelles on a déjà travaillé.
En Python le caractère # débute un commentaire.
Le code suivant est bien documenté. Essayez-le, analysez-le. Ensuite créez un fichier damier.py avec 100 cases bleues et jaunes de 45 pixels de largeur.
Code Python traduit en HTML:#L'échiquier version 1.0.0
#par wouf 11/2018
from turtle import *
# Les variables globales :________________________________________________________________
nombre_colonnes=8
nombre_lignes=8
cote_en_pixels=40
# Les fonctions : _______________________________________________________________________
def dessin_carre(x,couleur="aucune" ): #cette fonction est documenté en dessous entre les triples cotes:
""" x est le coté du carré en pixel
Option : la couleur de remplissage est facultative..."""
les_couleurs=("blue" ,"red" ,"green" ,"yellow" ,"brown" ,"black" ,"white" ,"pink" ,"orange" ,"purple" ,"grey" )
#cette liste est une variable locale, non connue à l'exterieur de la fonction dessin_carre()
if couleur not in les_couleurs: #si la couleur est "aucune" ou une couleur non existante...
couleur="white"
fillcolor(couleur)
begin_fill()
for c in range(4):
forward(x)
right(90)
end_fill()
# Les paramètres pour turtle : __________________________________________________________
speed("fastest" )#vitesse maximum
shape("blank" ) #pour ne pas voir le curseur
title("Echiquier de Wouf" ) #Titre de la fenêtre
# Dessin de l echiquier ________________________________________________________________
for i in range(nombre_colonnes):
for j in range(nombre_lignes): #avez vous remarqué les 2 boucles imbriquées ?
#positionnement :
up()
goto(i*cote_en_pixels-320,j*cote_en_pixels-220) #où placer la tortue avant de faire la case (i,j) ?
down()
if (i+j)%2==0:
#Si la case est paire
#(X%Y est le reste de la division
#euclidienne de X par Y)
#On apllique la couleur foncée (remplissage)
dessin_carre(cote_en_pixels,"brown" )
else: #Sinon on a une case paire de couleur claire
dessin_carre(cote_en_pixels,"grey" )
Pour vous donner un exemple simple, je vous propose le code qui suit.
Un feu tricolore s'offre à vous et la possibilités d'utiliser 3 touches du clavier :
#Le feu tricolore version 1.0.0
#par wouf 11/2018
#Utilisez les touches r(rouge) o(orange) et v(vert) pour changer la couleur du feu
from turtle import *
# Les paramètres pour turtle : __________________________________________________________
speed("fastest" )#vitesse maximum
shape("blank" ) #pour ne pas voir le curseur
title("Feu tricolore de Wouf" ) #Titre de la fenêtre
def rouge(): #Le feu est rouge
up()
goto(50,-50)
down()
color("red" )
dot(80)
up()
goto(50,-150)
down()
color("black" )
dot(80)
up()
goto(50,-250)
down()
dot(80)
def orange(): #Le feu est orange
up()
goto(50,-50)
down()
color("black" )
dot(80)
up()
goto(50,-150)
down()
color("orange" )
dot(80)
up()
goto(50,-250)
down()
color("black" )
dot(80)
def vert(): #Le feu est vert
up()
goto(50,-50)
down()
color("black" )
dot(80)
up()
goto(50,-150)
down()
color("black" )
dot(80)
up()
goto(50,-250)
down()
color("green" )
dot(80)
#Dessin du feu : _______________________________________________________________
fillcolor("brown" )
begin_fill()
forward(100)
right(90)
forward(400)
right(90)
forward(100)
right(90)
forward(400)
right(90)
end_fill()
up()
goto(50,-50)
down()
dot(80)
up()
goto(50,-150)
down()
dot(80)
up()
goto(50,-250)
down()
dot(80)
# la tortue écoute les entrées au clavier (listen) et associe :
#à la touche r la fonction rouge()
#à la touche o la fonction orange()
#à la touche v la fonction vert()
if __name__ == "__main__" :
listen()
onkeypress(rouge,"r" )
onkeypress(orange,"o" )
onkeypress(vert,"v" )
mainloop()
feu_tricolore
Quand le feu est rouge il serait bien qu'un appui sur la touche r éteigne l'ampoule (idem pour orange et vert)
Pouvez vous faire ça ?
Votre mission est de créer (après certaines recherches) le visuel d'un jeu de puissance 4.
Pourquoi ne pas travailler en équipe ?
Les plus rapide peuvent réfléchir à l'interaction avec l'utilisateur...
Au cycle 4, les élèves s'initient à la programmation, en développant dans une démarche de projet quelques programmes simples, sans viser une connaissance experte et exhaustive d'un langage ou d'un logiciel particulier. En créant un programme, ils développent des méthodes de programmation, revisitent les notions de variables et de fonctions sous une forme différente, et s'entraînent au raisonnement.
Décomposer un problème en sous-problèmes afin de structurer un programme ; reconnaître des schémas. Écrire, mettre au point (tester, corriger) et exécuter un programme en réponse à un problème donné. Écrire un programme dans lequel des actions sont déclenchées par des événements extérieurs. Programmer des scripts se déroulant en parallèle. - Notions d'algorithme et de programme. - Notion de variable informatique. - Déclenchement d'une action par un événement, séquences d'instructions, boucles, instructions conditionnelles.
Jeux dans un labyrinthe, jeu de Pong, bataille navale, jeu de nim, tic tac toe. Réalisation de figure à l'aide d'un logiciel de programmation pour consolider les notions de longueur et d'angle. Initiation au chiffrement (Morse, chiffre de César, code ASCII...). Construction de tables de conjugaison, de pluriels, jeu du cadavre exquis... Calculs simples de calendrier. Calculs de répertoire (recherche, recherche inversée...). Calculs de fréquences d'apparition de chaque lettre dans un texte pour distinguer sa langue d'origine : français, anglais, italien, etc.
En 5e, les élèves s'initient à la programmation événementielle. Progressivement, ils développent de nouvelles compétences, en programmant des actions en parallèle, en utilisant la notion de variable informatique, en découvrant les boucles et les instructions conditionnelles qui complètent les structures de contrôle liées aux événements.
Blue-Bot est un robot autonome spécialement conçu pour une utilisation scolaire. Le robot : 125,00 €Pack 6 robots + station d'accueil : 759,00 €

Nous avons tous vécu ce moment : vous cherchez une ligne de code précise, un mot-clé dans un rapport, ou une erreur dans un fichier de log. Vous ouvrez l’explorateur de fichiers, vous tapez votre mot-clé dans la barre de recherche et... vous attendez. La petite barre verte progresse avec la lenteur d'un escargot fatigué, pour finalement vous répondre : "Aucun élément ne correspond à votre recherche".
C’est frustrant, n’est-ce pas ? C’est parce que vous utilisez des outils conçus pour la bureautique "grand public", pas pour la performance. Sur Linux, il existe une arme de destruction massive contre l’oubli et le désordre : grep.
Passer à grep, c’est comme quitter un vélo d’appartement pour une Formule 1. Là où une interface graphique (Windows) doit charger des icônes, des aperçus et gérer chaque clic de souris, grep (pour Global Regular Expression Print) va directement à l'essentiel : le texte brut.
Sous Linux, le système ne se pose pas de questions existentielles. Vous lui demandez de trouver une aiguille dans une botte de foin de 5 Go ? Il le fait en quelques millisecondes. Pourquoi ? Parce qu’en ligne de commande, il n’y a pas de "gras". C’est une communication directe avec le processeur. Maîtriser grep, c’est réaliser que la souris est souvent le frein principal de votre productivité.
Pas besoin d'un doctorat en informatique pour utiliser grep. La syntaxe de base est d'une simplicité désarmante :
grep "ce_que_je_cherche" nom_du_fichier
-i : Ignore la casse (il trouvera "ERREUR", "Erreur" ou "erreur").-r : Recherche récursive (il fouille dans tous les dossiers et sous-dossiers).-n : Affiche le numéro de la ligne (pour savoir exactement où aller dans votre éditeur).-v : Inverser la recherche (affiche tout, sauf ce que vous cherchez).Exemple concret :
grep -rn "API_KEY" .Traduction : "Cherche-moi le texte 'API_KEY' dans tout le projet actuel et dis-moi précisément à quelles lignes il se trouve."
C’est ici que Linux devient véritablement addictif. Sous Windows, chaque logiciel travaille dans son coin. Sous Linux, on fait travailler les outils ensemble grâce au "Pipe" (le symbole |, obtenu avec Alt Gr + 6 sur un clavier AZERTY).
Imaginez le "Pipe" comme un tunnel. Vous envoyez le résultat d'une première commande dans le tunnel, et grep l'attend à la sortie pour le filtrer.
Pour lister vos fichiers en ligne de commande, on utilise ls. Si vous avez 2000 fichiers dans un dossier, la liste va défiler trop vite pour vos yeux. Mais si vous tapez : ls | grep "facture"
Le système liste tout, l'envoie dans le "tunnel", et grep ne vous affiche à l'écran que les lignes qui contiennent le mot "facture". C'est instantané.
Et si vous voulez enregistrer ce résultat ? Pas besoin de copier-coller dans un Bloc-notes. Utilisez la flèche de redirection > : ls | grep "2023" > fichiers_archives.txt
En une fraction de seconde, vous venez de créer un fichier texte contenant la liste exacte de vos documents de 2023. Essayez de faire ça aussi vite avec un clic droit.
Lorsqu’on commence à manipuler de gros volumes de données, rechercher un mot unique atteint vite ses limites.grep permet d’aller plus loin en utilisant un fichier de motifs, ce qui transforme une simple recherche en un véritable outil de filtrage automatisé.
Le principe est simple : placer tous les mots ou expressions à rechercher dans un fichier texte, un motif par ligne, puis demander à grep de s’appuyer sur cette liste.
Créons un fichier motifs.txt :
error
warning
critical
Chaque ligne représente un critère de recherche indépendant.
Pour extraire depuis un fichier de log uniquement les lignes correspondant à ces critères :
grep -f motifs.txt journal.log > extraction.log
-f indique à grep d’utiliser un fichier comme source de motifsjournal.log est le fichier analysé> redirige le résultat vers un nouveau fichierLe fichier extraction.log ne contiendra que les lignes pertinentes, prêtes à être relues, archivées ou analysées.
Ignorer la casse :
grep -i -f motifs.txt journal.log > extraction.log
Ajouter les résultats à un fichier existant :
grep -f motifs.txt journal.log >> extraction.log
Ces options permettent d’ajuster la commande sans en modifier la logique.
Cette approche est particulièrement utile pour :
grep dans des scripts Bash ou des pipelines.En combinant listes de motifs, redirections et options, grep cesse d’être un simple outil de recherche pour devenir un véritable moteur de tri en ligne de commande.
Si vous êtes sur macOS, félicitations : ouvrez votre Terminal, grep est déjà là.
Si vous êtes sur Windows, vous avez plusieurs options pour goûter à cette puissance :
C'est là le piège : une fois que vous aurez goûté à grep, vous réaliserez que ce n'est qu'un échantillon gratuit. Le vrai plaisir, c'est d'avoir tout l'écosystème Linux qui va avec.
grep n’est pas qu’une simple commande de recherche. C’est une philosophie. C’est l’idée que l’ordinateur est là pour exécuter des ordres précis et instantanés, pas pour vous faire deviner où il a rangé vos données.
Apprendre à utiliser grep, c’est faire le premier pas vers l’automatisation. Le risque ? C'est qu'après une semaine d'utilisation, vous ne supportiez plus d'attendre la petite loupe de Windows et que vous finissiez par installer Linux pour de bon. Vous êtes prévenus.
Vous souhaitez franchir le pas ou approfondir votre maîtrise de la ligne de commande ? Voici quelques pistes essentielles :