Apprendre Python - Boucle for (Structures itératives)

Dans cette leçon vidéo, l’instructeur explique la boucle for du langage Python, en la comparant d’abord à la boucle while et en rappelant les trois composantes essentielles d’une boucle (initialisation, condition, mise à jour). Il décrit la syntaxe « for variable in séquence », le rôle de l’opérateur in et les types de séquences (chaînes, listes, tuples). Le tutoriel détaille la fonction range() – paramètres start, stop, step, y compris les pas négatifs – et montre comment l’utiliser pour générer des séquences numériques (1 à 10, nombres impairs, décroissants). Il introduit les instructions break et continue dans les boucles for, puis illustre un cas d’usage complet : validation d’une saisie utilisateur (while True + break) suivie de la génération d’une table de multiplication avec une boucle for simple, puis d’une table complète pour tous les nombres de 1 à 10 grâce à des boucles for imbriquées. Le cours montre également l’affichage formaté avec les f‑strings et la méthode format(), ainsi que des astuces de lisibilité (traits séparateurs). L’ensemble vise à rendre les structures itératives claires, à montrer quand privilégier for ou while, et à fournir des exemples concrets de programmation itérative en Python.
Chapters
Bonjour à tous et bienvenue dans cette nouvelle leçon sur le langage de programmation Python. Aujourd'hui, nous allons voir la boucle For. Dans la dernière vidéo, nous avons vu la boucle While qui est une structure itérative. En temps normal, la boucle While a besoin de 3 choses pour qu'elle fonctionne bien: initialisation du compteur avant d'entrer dans la boucle, spécification de la condition qui maintient la boucle, et changement de la valeur du compteur à l'intérieur de la boucle. Rappelons le programme qui affiche les nombres de 1 à 10 à l'aide de la boucle While. Le compteur dans ce cas est la variable i qu'on a initialisée à 1 avant d'entrer dans la boucle. Cette dernière vérifie si i reste inférieure ou égale à 10 pour s'exécuter. Ceci est la condition qui maintient la boucle. Après l'affichage, on incrémente la variable i de 1. C'est le changement de la valeur du compteur de la boucle. Bien entendu, on peut se passer du compteur et programmer notre boucle autrement comme on l'a fait pour le filtrage de saisie dans l'exemple de la division, mais dans la plupart des cas une boucle fonctionne ainsi. La boucle For fait exactement la même chose que la boucle While, c'est-à-dire répéter un traitement un certain nombre de fois, sauf que la boucle For est plus facile à mettre en place en raison de sa syntaxe simple. En effet, la boucle For a aussi besoin des 3 opérations que j'ai mentionnées, mais au lieu de les programmer une à une dans des instructions séparées, on va toutes les mettre dans une seule instruction. Je rappelle que mis à part la syntaxe simple de la boucle For, on préfère généralement cette structure si l'on connaît à l'avance le nombre d'itérations à exécuter, sinon c'est la boucle While qui est la plus adaptée. En Python, la boucle For a cette syntaxe: Compteur est la variable qui fait office du compteur de la boucle. In est un opérateur nommé opérateur d'appartenance, il s'agit d'un opérateur un peu spécial et facile d'utilisation en même temps. C'est pour cette raison que je ne l'ai pas traité dans la vidéo consacrée aux opérateurs. L'opérateur in vérifie simplement si une valeur est présente dans une séquence. Quant à la séquence, il s'agit d'une structure de données, c'est-à-dire une entité qui contient plusieurs éléments plus petits. En Python, les séquences les plus célèbres sont les listes, les tuples et les chaînes de caractères. Il existe d'autres séquences que l'on traitera en détail prochainement. À titre d'exemple, une chaîne de caractères est une séquence qui contient des éléments plus petits, sont les caractères. Si on prend la chaîne de caractères Bonjour, il s'agit d'une séquence qui contient 7 éléments plus petits et qui sont les 7 lettres qui constituent le mot. Je ne vais pas entrer dans les détails car il faut comprendre ce que c'est qu'une liste en Python avant, donc pour l'instant nous allons nous contenter de comprendre comment notre boucle fait le parcours d'une séquence. Imaginez que nous avons saisi le code suivant: for i in Bonjour print. Dans ce cas, nous allons simplement parcourir la chaîne de caractères Bonjour dans Donc, on imagine que cette boucle s'exécutera 7 fois, car la chaîne Bonjour contient 7 caractères. À chaque itération de la boucle, une lettre de la chaîne sera affectée à la variable i et que l'on affichera à l'aide de la fonction print. Remarquez encore les deux-points ainsi que l'indentation du bloc d'instructions. Maintenant, imaginez que l'on veut afficher les nombres de 1 à 10. Dans ce cas, on doit créer une séquence qui contient tous ces nombres-là. En Python, la fonction range permet de créer une séquence de nombres entiers comme ceci: Si on écrit Range, alors on génère une séquence de nombres commençant de 0 et allant jusqu'à 9. Notez que 10 est exclu. En règle générale, Range produit les nombres de 0 à n-1. Si on écrit Range , dans ce cas la séquence commence à 1 et non pas à 0 et finit à 9. Notez que les nombres générés sont incrémentés par défaut de 1. Si on veut que les nombres s'incrémentent d'une valeur différente, qu'on n'appelle d'ailleurs pas d'incrémentation, Alors on ajoute un troisième paramètre à la fonction Range comme ceci. Dans ce cas, on génère les nombres 1, 3, 5, 7 et 9, car le pas d'incrémentation vaut 2 et non pas 1. Si cette fois on veut générer une séquence de nombres décroissants, alors on fait ceci. Dans ce cas, la valeur de départ est 10 et la valeur finale est 1. Notez qu'on s'arrête toujours à une position avant. Le pas -1 signifie que l'on décrémente le nombre de la séquence à chaque fois. Maintenant, affichons les nombres de 1 à 10 à l'aide de la boucle For. On mettra: For i in range . N'oublie pas que la séquence s'arrête à une position avant la valeur finale qui est 11, donc le dernier nombre à générer est 10. Puisque le pas d'incrémentation n'a pas été renseigné, alors il vaut implicitement 1. Si on compare avec la boucle While, Alors c'est comme si on a initialisé le compteur de la boucle à 1. La condition consiste à vérifier si i est strictement inférieur à 11, et le compteur s'incrémente de 1. Donc on retrouve exactement les 3 opérations de base d'une boucle ordinaire, mais vous constatez que toutes ces opérations-là sont faites dans une seule instruction. En plus, l'incrémentation du compteur est implicite puisqu'il vaut 1, ce qui rend encore notre code plus facile à écrire. Dans le bloc d'instructions on mettra simplement Print. 1 dans t bien entendu. Si maintenant on veut générer les nombres impairs, alors il suffit de spécifier le pas d'incrémentation avec la valeur 2. Donc, pas la peine de placer une condition qui vérifie la parité à l'intérieur de la boucle. Notre code devient comme ceci. Pour la liste des nombres décroissants, on fait ceci. N'oubliez pas de spécifier le pas à -1. Les instructions Break et Continue sont applicables dans la boucle For aussi. Imaginez que l'on veut s'arrêter à la position 5 dans notre liste de nombres, alors notre code ressemblera à ceci. Nous avons placé Break après Print, comme ça la valeur 5 sera affichée. Si on la place avant, alors la dernière valeur à afficher est 4. Et si on veut afficher notre liste de nombres à l'exception du nombre 5? On utilisera l'instruction Continue comme ceci. Remarquez que Continue est placée avant Print. Je vous renvoie vers la vidéo consacrée à la boucle While où j'ai expliqué les instructions Break et Continue avec plus de détails. Imaginez que l'on souhaite afficher la table de multiplication d'un nombre entier saisi par l'utilisateur, alors on peut proposer le code suivant: On demande d'abord à l'utilisateur de saisir un nombre compris entre 1 et 10 comme ceci: Afin de filtrer l'entrée, c'est-à-dire n'exécuter les instructions suivantes que si le nombre est réellement compris entre 1 et 10, nous allons faire comme dans la vidéo précédente: While True. Si n est compris entre 1 et 10, alors on arrête la boucle While à l'aide du mot-clé Break comme ceci. Si n est à la fois supérieur ou égal à 1 et inférieur ou égal à 10, alors on exécute Break. Notez qu'en Python on peut remplacer la condition comme ceci, pour dire que n doit être compris entre 1 et 10. Maintenant il est temps de générer la table de multiplication du nombre n. Pour cela on utilise la boucle For car elle est plus simple à écrire. En plus, on sait à l'avance qu'il y a 10 itérations à exécuter. Donc on met for i in range. Ça veut dire que la séquence finit à 10. N'oubliez pas qu'on s'arrête toujours à une position avant. On place une indentation et on affiche notre chaîne comme ceci. On peut utiliser une f-string pour éviter le séparateur virgule. Ou encore à la méthode format. Je vous renvoie vers la leçon sur les Entrées/Sorties pour plus de détails sur cette technique d'affichage. Maintenant, imaginez que l'on veut afficher la table de multiplication de tous les nombres compris entre 1 et 10, c'est-à-dire on va afficher la table de multiplication de 1, puis la table de multiplication de 2, etc. La meilleure solution consiste à utiliser 2 boucles For imbriquées. En effet, l'imbrication des structures de contrôle est une opération très courante, donc il serait mieux de s'y habituer. La première boucle que l'on appellera la grande boucle et qui utilisera le compteur i générera une séquence de nombres allant de 1 à 10, donc Range . Pour chaque nombre i de cette séquence, nous allons générer une autre séquence de nombres allant de 0 à 10, donc Range à l'aide d'une autre boucle, que l'on appellera la petite boucle et qui utilisera le compteur j. Ensuite, il suffit de multiplier i par j. Pour mieux comprendre, imaginez que dans la grande boucle i vaut 1, alors on va multiplier 1 par tous les nombres j de la petite boucle, donc 1 fois 0, 1 fois 1, 1 fois 2 jusqu'à 1 fois 10. Ensuite dans la grande boucle i passe à 2 et on refait la même opération, c'est-à-dire 2 fois 0, 2 fois 1, 2 fois 2, etc. Et ainsi de suite jusqu'à atteindre le nombre 10 de la grande boucle. Notre programme ressemblera à ceci: On commence par saisir la première boucle, ou grande boucle. On met for i in range . Donc i va valoir 1, puis 2, puis 3 jusqu'à 10. On place une indentation et on saisit la deuxième boucle, ou petite boucle. On met for j in range. Donc j va valoir 0, puis 1, puis 2 jusqu'à 10 aussi. On place encore une indentation puis on affiche le message souhaité. C'est-à-dire i fois j, avec le format que vous voulez. Cette fois je vais opter pour la méthode format. Si on exécute, on aura naturellement beaucoup de lignes qui seront affichées. Le nombre de lignes vaut le nombre d'itérations de la grande boucle multiplié par le nombre d'itérations de la petite boucle, donc 10 fois 11, ce qui donne 110 lignes. Nous allons juste placer une sorte de trait entre les différents blocs à afficher pour une meilleure lisibilité. Donc nous allons nous placer au même niveau que for j puis on met print et on place les caractères qui vont faire office du trait. J'ai opté pour des tirets. J'espère maintenant que vous avez compris comment vous servir des structures itératives, et dans tous les cas, nous en aurons souvent besoin dans les futures leçons, donc on aura l'occasion de les utiliser dans des contextes différents. Merci pour votre attention et à la vidéo prochaine.
More from Yamossoun

Algorithme de calcule de la racine carrée par dichotomie #dichotomy #squareroot #algorithm









