Pour la rentrée, Kid 1.8 doit officiellement voir la table de Pythagore. Nous avons introduit la table de Pythagore assez tôt dans son apprentissage des tables de multiplication. Nous l’avons fait la remplir lui même au fur et à mesure qu’à l’école, ils voyaient une nouvelle table.

Mais aujourd’hui, j’ai profité de l’occasion pour lui montrer comment ont peut faire générer à un ordinateur une table de multiplication et la table de Pythagore. Et tout ça en Python.

Attention, ceci n’est pas un post d’initiation à la programmation Python. Mon intention est d’illustrer par un cas concret pour les élèves de primaire ce que peut apporter un peu de programmation. Les notions abordés sont : calcul, fonctions, formatage de texte et itérations.

Une table de multiplication

Commençons par le plus simple : afficher une table de multiplication.
L’ordinateur doit, pour une valeur donnée, afficher tous les produits de ce facteur par des valeurs allant de 1 à 10.

Quel que soit le langage de programmation, la multiplication s’écrit de la même manière : a * b. En Python, l’itération se fera à l’aide de la fonction range(). Afficher le résultat se fera par la fonction print() et pour afficher le résultat sur une seule ligne, on va adapter le paramètre end de cette fonction.

Pour pouvoir afficher la table pour une valeur donnée, on va donc écrire une fonction.

Il suffit maintenant d’appeler cette fonction en passant en paramètre une valeur pour voir s’afficher la table de 1 à 10 de cette valeur. Par exemple :

Vous avez remarqué que j’ai ajouté le paramètre max à cette fonction. Ce paramètre avec la valeur par défaut de 10 s’assure d’afficher la table standard. Mais il permet aussi d’afficher une table avec une borne maximum au choix de l’utilisateur.

La table de Pythagore

La table de Pythagore est un tableau où les abscisses et les ordonnées sont les facteurs, généralement de 1 à 10 et les cases le produit des valeurs correspondantes.

Pour dessiner une table de Pythagore, nous allons pouvoir réutiliser la fonction précédente. La table de Pythagore usuelle présente les valeurs entre 1 et 10. Mais là aussi, je vais permettre le paramétrage. La fonction table de Pythagore est donc très simple à écrire :

Afficher la table standard se fait alors sans paramètres.

Il est intéressant de montrer au Kid ce que l’on peut faire avec 7 lignes de code Python. 7 lignes qui génèrent instantanément une table de Pythagore alors que lui a passé quelques temps à l’écrire.

Mais ce résultat est quand même un peu moche et pas très lisible…

Présenter la table de Pythagore

On va commencer par aligner les valeurs. Pour cela, on va utiliser la fonction format et imposer le nombre de caractères pour afficher la variable. Tant qu’on est sur le formatage, profitons-en pour dessiner des colonnes en modifiant le paramètre end.

Et comme cette colonne ne doit pas exister pour la dernière valeur, on va exploiter le comportement de la fonction range. La nouvelle fonction multiplication devient donc…

Cette fois-ci, l’appel de cette fonction produit l’affichage suivant :

Pour afficher la table de Pythagore, il ne nous reste plus qu’à ajouter des lignes pour la présentation en tableau. Les lignes seront représentées par des tirets. Le nombre de tirets est égal au nombre de caractères pour afficher la valeur (3) plus 3 pour les séparateurs (la paramètre end). Le tout, répété autant de fois que le nécessite la taille de la table. Il ne faut pas oublier que la dernière valeur n’est pas suivie d’un séparateur, plutôt que d’utiliser des conditions complexes, je vais préférer le slicing pour supprimer les 3 derniers tirets.

La fonction permettant d’afficher la table de Pythagore devient donc :

Et le résultat devient :

Wahou. Bon, et à quoi ça sert ?

Comme je vous l’ai expliqué en introduction, pas vraiment à grand chose. Il est évidemment préférable que les Kids remplissent eux-même une table de Pythagore pour apprendre leur tables de multiplication. Ils voient alors à quel point c’est rébarbatif d’écrire toutes ces lignes et en comparaison, comment connaitre quelques lignes de code peut les décharger d’un tel travail rébarbatif.

À propos de... Darko Stankovski

iT guy, photographe et papa 3.0, je vous fais partager mon expérience et découvertes dans ces domaines. Vous pouvez me suivre sur les liens ci-dessous.