Les variables : des boîtes avec un nom
Une variable est une boîte avec un nom dans laquelle un programme garde une valeur, comme ton score dans un jeu. Cette valeur peut changer.
Pourquoi
Comment un jeu sait-il combien de points tu as, même après cent sauts et dix pièces ?
Le jeu doit retenir ton score quelque part. Chaque fois que tu prends une pièce, il regarde l'ancien score, ajoute quelque chose et retient le nouveau.
Cet endroit pour retenir quelque chose s'appelle une variable. Tu peux l'imaginer comme une boîte avec une étiquette : sur l'étiquette, il y a le nom, dans la boîte, il y a la valeur.
Vois-le
Choisis un programme et exécute-le ligne par ligne. Regarde quelle boîte change et ce qu'on met dedans.
- encore videscore
- encore videicompteur
- mets score à 0
- répète 3 fois
- mets score à score + 5
- affiche score
score = 0for i in range(3):score = score + 5print(score)
Description de l'image
À côté d'un court programme, il y a des boîtes avec un nom, comme score, a, b, temp, x et le compteur i. À chaque étape, la ligne en cours s'allume, et la boîte qui change est mise en évidence avec sa nouvelle valeur. En bas, on voit ce que le programme affiche.
Comprends-le
Avec score = 0, tu crées une boîte qui s'appelle score et tu y mets 0. Le signe = ne veut pas dire ici est égal à, mais : mets dans la boîte.
Avec score = score + 5, l'ordinateur regarde d'abord à droite : qu'y a-t-il maintenant dans score ? Il y ajoute 5. Il remet le résultat dans la même boîte. L'ancienne valeur a alors disparu.
Dans une boîte, il n'y a toujours qu'une seule valeur. Si tu veux échanger le contenu de deux boîtes, il te faut une boîte d'aide, sinon tu perds une valeur.
Une boucle a elle aussi une variable : le compteur. Dans for i in range(4):, i reçoit l'une après l'autre les valeurs 0, 1, 2 et 3. Tu peux utiliser i dans ton calcul.
Un bon nom aide : score ou coins en dit plus que x. Pour l'ordinateur, ça ne change rien, mais pour les personnes qui lisent ton code, si.
naam = waarde : calcule la partie droite avec les valeurs actuelles, mets le résultat dans la boîte de gauche. L'ancien contenu disparaît.
Exemple résolu
Quel nombre ce programme affiche-t-il ?
Le programme :
score = 2 for i in range(3): score = score + 4 print(score)Ligne 1 : score devient 2.
La boucle tourne 3 fois et ajoute chaque fois 4 : 6, puis 10, puis 14.
La ligne 4 affiche le contenu de score.
- Réponse
Le programme affiche 14.
Fais-le
Choisis un niveau. Tu reçois chaque fois un nouvel exercice, corrigé tout de suite.
Pièges
Faux:
score = score + 5est impossible, car un nombre n'est jamais égal à lui-même plus 5.Dans le code,
=ne veut pas dire est égal à, mais : mets dans la boîte. D'abord on calcule la partie droite, ensuite on remplit la boîte.Juste: Lis
=comme devient : score devient score plus 5.Faux: Après
a = betb = a, a et b sont échangés.Après
a = b, l'ancienne valeur de a n'est plus nulle part. Ensuite, b reçoit simplement à nouveau sa propre valeur.Juste: Garde d'abord une copie :
temp = a, puisa = b, puisb = temp.Faux: Une variable retient toutes ses anciennes valeurs.
Dans une boîte, il n'y a de place que pour une valeur. Si on met quelque chose de nouveau dans la boîte, on jette l'ancien.
Juste: Si tu veux garder les anciennes valeurs, il te faut plus de boîtes (ou plus tard : une liste).
Dans la vie
- Ton GSM garde le pourcentage de ta batterie dans une variable qui devient de plus en plus petite.
- Un podomètre ajoute 1 à chaque pas : pas devient pas plus 1.
- Une caisse au supermarché garde le total et y ajoute le prix de chaque produit.
- Dans un jeu, tes vies, tes pièces et ton niveau sont chacun dans leur propre variable.
Histoire
Le code de Lus ressemble à Python, un langage de programmation inventé par le Néerlandais Guido van Rossum. La première version est sortie en 1991. Python est aujourd'hui utilisé dans beaucoup d'écoles et d'entreprises.
À table
Inventez ensemble un jeu avec trois variables, par exemple les points, les vies et le temps. Quand chaque variable monte-t-elle ou descend-elle ?
Une question pour en parler ensemble, parents et enfants. Il n'y a pas de mauvaise réponse.