La boucle for en python

La boucle for en python

  1. Objectifs

    • Comprendre et savoir utiliser la boucle for dans Python.
    • Savoir utiliser les boucles for (imbriquées) et la technique du “drapeau” sous Python
  2. Présentation

    • Les boucles permettent de répéter une certaine opération autant de fois que nécessaire.
    • En Python, on trouve deux types de boucle :
      • La boucle for dans laquelle une variable parcourt une collection de valeurs.
      • La boucle while qui se répète tant qu’une condition est vraie.
    • L’instruction “for” est une structure de contrôle itérative complète permet de répéter l’exécution d’une suite d’instructions un nombre fini de fois connu à l’avance.
    • L’instruction “for” travaille sur des séquences. Elle est spécialisées dans le parcours d’une séquence de plusieurs éléments.
    • Contrairement à d’autres langages comme le C ou PERL, python n’utilise pas de délimiteurs pour regrouper les lignes. L’indentation, souvent présentée comme un moyen de rendre les programmes plus lisibles, est ici intégrée à la syntaxe du langage. Il n’y a pas non plus de délimiteurs entre deux instructions autre qu’un passage à la ligne.




  3. Syntaxe

    • for var in séquence:
      instruction 1

      instruction n

      • var est un élément de l’ensemble séquence. Les instructions 1 à n sont exécutées pour chaque élément var de l’ensemble séquence.
      • Cette séquence peut être une chaîne de caractères, un tuple, une liste, un dictionnaire, un set ou tout autre type.

      Tout comme les tests, l’indentation est importante.

      t = (1, 2, 3, 4)
      for x in t: 
          print(x)
      >>>
          1
          2
          3
          4
      Activité01:
    • Admettons que l’on veuille afficher 5 fois le message “Je suis votre formateur en Python”. Voici ce qu’on peut faire.
    • for i in range(5): """ pour i allant de 0 à 4"""
         print("Je suis votre formateur en Python")
  4. Les mots clés "break" et "continue"

    • break
      • Le mot-clé break permet tout simplement d’interrompre une boucle.
      • Permet d’interrompre une boucle.
      • Arrête une boucle quelle que soit la condition de celle-ci.
      • Utile et fait gagner du temps.
      • Mais préférez une boucle avec une condition claire.
      • while 1:
            """ 1 est toujours vrai -> boucle infinie"""
            lettre = input (" Tapez 'Q' pour quitter : ")
            if lettre == "Q":
                print ("Fin de la boucle ")
            break
      • La boucle while a pour condition 1, c’est-à-dire une condition qui sera toujours vraie. Autrement dit, en regardant la ligne du while , on pense à une boucle infinie.
      • Puis, on demande à l’utilisateur de taper une lettre (un ‘Q‘ pour quitter).
      • Tant que l’utilisateur ne saisit pas cette lettre, le programme lui redemande de taper une lettre. Quand il tape ‘Q‘, le programme affiche Fin de la boucle et la boucle s’arrête grâce au mot-clé break.
      continue
      • Permet de continuer une boucle.
      • Fait repartir directement à la ligne du while ou for.
      • Le mot-clé continue permet de. . . continuer une boucle, en repartant directement à la ligne du while ou for.
      • i = 1
        while i < 40: # Tant que i est inf é rieure à 20
            if i % 5 == 0:
                print ("Valeur de i devisible sur cinq",i)
                i += 4 # On ajoute 4 à i
                print ("On incrémente i de 4. i est maintenant é gale à",i)
                continue # On retourne au while sans exécuter les autres lignes
            print ("La variable i =", i)
            i += 1 # Dans le cas classique on ajoute juste 1 à i
      • Ce qui nous donne:
      • La boucle for en python

      • Comme vous le voyez, tous les six tours de boucle, i s’incrémente de 4. Arrivé au mot clé continue, Python n’exécute pas la fin du bloc mais revient au début de la boucle en testant à nouveau la condition du while.
      • Autrement dit, quand Python arrive à la ligne 6, il saute à la ligne 2 sans exécuter les lignes 7 et 8.
      • Au nouveau tour de boucle,Python reprend l’exécution normale de la boucle (continue n’ignore la fin du bloc que pour le tour de boucle courant).
  5. Applications

    1. Écrire une ligne de commande qui affiche tous les multiples de 7 entre 0 et 70.
    2. for i in range(0,70):
          if i%7==0:
              print(i)
    3. Rédiger un programme factorielle.py qui calcule le nombre n!n est une variable de type int.
    4. valeur=int(input("Saisir une valeur de type entier"))
      total=1
      for i in range(1,valeur+1):
          total=int(total)*i
      print(total)
    5. Écrire un programme voyelles.py qui affiche le nombre de voyelles d’un mot (écrit en minuscule, sans caractère accentué).
      • Ce petit programme va nous permettre de voir comment on manipule facilement les chaînes de caractères avec Python.
      • Dans la boucle principale, on demande à l’utilisateur de saisir un mot. Le programme affiche alors le nombre de voyelles du mot donné.

      print("Pour sortir du programme, saisir lattre q \"q.\n\n")
      
      mot=""
      
      while mot != "Q" :
          mot=input("Saisir un mot (sans accent) : ")
          # on met toutes les letres en minuscules
          mot_min=mot.lower()     
      
          # on crée la liste des voyelles
          liste_voyelles=("a","e","i","o","u","y") 
      
          # on initialise le compteur de voyelles
          nb_voyelles = 0         
      
          # la boucle de comptage
          for lettre in mot_min : 
              if lettre in liste_voyelles :
                  nb_voyelles+=1
      
          # l'affichage du résultat
          if   nb_voyelles == 0 : 
              print("Il n'y a pas de voyelles dans le mot \"" + mot + "\".\n")
          elif  nb_voyelles == 1 :
              print("Il y a une seule voyelle dans le mot \"" + mot + "\".\n")
          else :  
              print("Le mot \"" + mot + "\" contient " + str(nb_voyelles) + " voyelles.\n")
      print("\n\n")
      input("Appuyer sur ENTER pour terminer le programme. ")