Tous les matins, j'apporte à ma femme le café au lit. Elle n'a plus qu'à le moudre.
Pierre Desproges (sur mon T shirt!)
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 €

UN NOMBRE ET SON CARRÉ
Le nombre 567 possède une propriété assez particulière. En effet, pour l'écrire en compagnie de son carré 321 489, il est nécessaire d'utiliser tous les chiffres de 1 à 9 ; et chacun d'eux, une fois et une seule.
Un autre nombre jouit de cette propriété. Lequel ?
J'ai retrouvé cette jolie énigme dans Jeux et Stratégie n°9 de Juin 1981. Je me souviens avoir développé (un peu plus tard) sur TO7 un petit programme en basic pour découvrir l'autre nombre...

J’ai toujours eu une tendresse particulière pour la revue Jeux et Stratégie. J’y retrouvais un esprit rare, à la fois intelligent, curieux et ludique, qui donnait envie de réfléchir autant que de jouer. On y croisait les échecs, bien sûr, mais aussi une foule d’autres jeux, des énigmes, des mathématiques, des idées de développement et cette manière unique de faire dialoguer plaisir, logique et culture. Même les jeux en encart avaient quelque chose de magique : ils prolongeaient la lecture, invitaient à manipuler, tester, chercher, recommencer. Cette revue ne se contentait pas de divertir : elle ouvrait des portes, stimulait l’imagination et montrait qu’on pouvait apprendre énormément en jouant sérieusement.
i = 0
while len(str(i)) + len(str(i * i)) < 10:
i += 1
chiffres_i = set(str(i))
chiffres_carre = set(str(i * i))
tous_les_chiffres = chiffres_i.union(chiffres_carre)
if tous_les_chiffres == set("123456789"):
print(i, i * i)
En testant ce code dans le bac à sable Python du site2wouf.fr vous obtenez :

L'autre nombre est 854
Ce petit programme Python cherche un nombre entier particulier. On teste les nombres un par un, en partant de 1, puis 2, puis 3, etc. Pour chaque nombre i, on calcule son carré i * i, puis on regarde les chiffres présents dans i et dans son carré. Le but est de trouver un cas où l’ensemble des chiffres obtenus correspond exactement aux chiffres de 1 à 9.
La première ligne, i = 0, sert simplement à initialiser (donner une valeur de départ à) la variable (zone de mémoire qui stocke une valeur). En Python, le signe = sert à affecter (attribuer) une valeur à une variable. Ici, on donne la valeur 0 à i. Il ne faut pas confondre avec ==, qui sert à tester une égalité (vérifier si deux valeurs sont égales). Par exemple, i = 5 signifie « on met 5 dans la variable i », tandis que i == 5 signifie « on vérifie si i vaut 5 ».
Ensuite, la boucle while (tant que) permet de répéter les instructions tant qu’une condition (règle à vérifier) est vraie. Ici, la condition est len(str(i)) + len(str(i * i)) < 10. Cela signifie qu’on continue tant que le nombre total de chiffres de i et de son carré reste inférieur à 10. La fonction (outil qui effectue une tâche) str() (string, c’est-à-dire chaîne de caractères / texte) transforme un nombre en texte, ce qui permet ensuite à len() (length, longueur) de compter son nombre de caractères, donc ici son nombre de chiffres.
À l’intérieur de la boucle, on écrit i += 1, ce qui revient à écrire i = i + 1. On augmente donc i de 1 à chaque tour pour tester successivement tous les entiers.
La condition importante se trouve dans le if (si). On utilise set(str(i)) pour récupérer les chiffres de i sous forme d’ensemble (collection sans doublons), puis set(str(i * i)) pour faire la même chose avec le carré. Un ensemble, en Python, est une collection d’éléments sans doublons. Ainsi, si un chiffre apparaît plusieurs fois, il n’est conservé qu’une seule fois dans l’ensemble.
La méthode (action que l’on applique à un objet) .union() (union, réunion) sert justement à réunir deux ensembles. Par exemple, l’union de {'1', '2'} et {'2', '4'} donne {'1', '2', '4'}. Dans ce programme, .union() permet donc de regrouper tous les chiffres présents dans i et dans i * i.
Enfin, on compare ce résultat à set("123456789"). Le signe == sert ici à vérifier si les deux ensembles sont égaux. Si c’est le cas, cela signifie que les chiffres de i et de son carré, réunis ensemble, forment exactement les chiffres de 1 à 9. Le programme affiche alors i et son carré avec print() (afficher à l’écran).
Firefox est un très bon navigateur alternatif!
Lien de téléchargement dans la boite à outils du menu informatique...