Leçons ·
Décider et répéter
Faire décider un programme avec if, puis répéter avec for et while, avec la boutique d'Awa.
Transcription
Awa a maintenant ses prix dans des variables, mais elle voudrait que son programme accorde tout seul une remise aux clients qui achètent beaucoup. Pour cela, il faut lui apprendre à décider, et c'est le rôle de la condition if, qui veut dire si.
Elle commence par enregistrer le montant de l'achat, ici 60 000 francs.
Puis elle lui dit : si l'achat atteint 50 000 francs ? Exactement, et Python vérifie alors cette condition. Comme 60 000 est bien supérieur ou égal à 50 000, la réponse est vraie.
Ce qui dépend d'une condition s'appelle un bloc de code, et Python le reconnaît à son décalage de quatre espaces. Un bloc peut contenir une ou plusieurs lignes. Ici, le bloc qui s'exécute lorsque la condition est vraie correspond à une seule ligne, la ligne 3.
Enfin, le mot-clé else introduit le bloc à exécuter lorsque la condition est fausse, et ce bloc correspond ici à la ligne 5. Comme la condition est vraie, Python affiche la remise et ignore complètement ce bloc.
Et si elle veut une petite remise pour les achats moyens ? Dans ce cas elle ajoute une condition elif, qui veut dire sinon si, et prenons cette fois un achat de 30 000 francs.
Python teste les cas dans l'ordre, et 30 000 n'atteint pas 50 000, donc il saute le premier bloc, qui correspond à la ligne 3.
Il passe alors au cas suivant, et cette fois 30 000 dépasse bien 20 000.
Il exécute donc le bloc de cette condition, qui correspond à la ligne 5 et qui affiche la petite remise, puis il s'arrête là. Faites seulement attention à une chose : pour tester une égalité, on écrit deux signes égal, parce qu'un seul sert à donner une valeur.
Maintenant, si elle a des centaines de ventes, elle ne va tout de même pas écrire une addition par vente ? Non, car c'est justement pour cela qu'existe la boucle for, et nous allons la construire morceau par morceau.
Awa prépare d'abord une variable total, qui commence à zéro.
Puis elle écrit le mot-clé for, suivi d'une variable, vente, et de la liste à parcourir. Cette ligne veut dire : pour chaque vente de la liste.
Vient ensuite le bloc de la boucle, celui qui est répété à chaque tour. Ici, ce bloc correspond à une seule ligne, la ligne 3, où l'opérateur plus égal ajoute la vente au total.
Regardez ce qui se passe au premier tour : vente vaut 1500, et le total passe de zéro à 1500.
Au deuxième tour, vente prend la valeur suivante, 2300, et le total monte à 3800.
Au troisième tour, on ajoute 800, et le total atteint 4600.
Comme il ne reste plus de vente à parcourir, la boucle s'arrête, et Python sort du bloc pour passer à la ligne 4, qui n'est plus décalée et qui affiche le total.
J'ai aussi vu la fonction range dans du code, à quoi sert-elle ? Elle produit une suite de nombres quand on veut répéter un certain nombre de fois.
Attention cependant, parce que range de 5 commence à zéro et s'arrête juste avant 5, ce qui fait bien cinq nombres, mais sans le 5 lui-même.
Et quand on ne sait pas à l'avance combien de tours il faudra ? Par exemple, si Awa met 15 000 francs de côté chaque mois pour atteindre 100 000 francs. Elle prépare alors son épargne et son compteur de mois, tous les deux à zéro.
C'est le bon cas pour la boucle while, qui répète tant qu'une condition reste vraie. Avant chaque tour, Python vérifie si l'épargne reste sous 100 000.
Tant que c'est vrai, il exécute le bloc de la boucle, qui correspond cette fois à deux lignes, les lignes 4 et 5. Il ajoute ainsi 15 000 francs et un mois de plus, puis il revient vérifier.
Au septième mois, l'épargne atteint 105 000 francs, la condition devient fausse et la boucle s'arrête.
Il faut seulement vérifier que quelque chose change à chaque tour, car sinon la condition reste vraie et la boucle ne s'arrête jamais.
Il reste deux instructions utiles pour garder la main sur une boucle. Avec break, on en sort aussitôt, par exemple dès qu'Awa trouve un produit en rupture de stock.
Les deux premiers stocks ne valent pas zéro, donc la boucle continue, mais au troisième, la condition est vraie. Python exécute alors son bloc, qui correspond aux lignes 3 et 4 : il affiche la rupture, puis break arrête la boucle, sans même regarder le dernier produit.
Et si elle veut seulement ignorer une ligne erronée, sans tout arrêter ? Alors elle utilise l'instruction continue, qui saute le tour en cours et passe au suivant.
Lorsque le montant est négatif, le bloc de la condition, qui correspond à la ligne 4, saute la fin du tour. Ainsi ce montant n'est jamais ajouté, et le total reste juste.
Le mieux est maintenant d'essayer sans revoir la vidéo, car c'est en cherchant par vous-même que tout cela va rester. Dans la leçon, vous allez donc écrire ces conditions et ces boucles, puis repérer l'erreur dans un code écrit par une intelligence artificielle.
Voix : Google Chirp 3 HD (Despina, Enceladus).
Photos : One Idea LLC, StockSnap, CC0

