Aller au contenu

La boucle FOR en Python

    image mise en avant python tkinter boucle for

    La boucle For en Python.

    La boucle For en Python est une des boucles que j’utilise le plus , je vais vous expliquer ici comment je l’utilise avec quelques exemples.

    Tout d’abord vous devez installer le Python et un éditeur. Personnellement j’utiliserai Sublime Text , si vous n’avez pas encore installé tout ca vous trouverez ici le détail.

    Venons en a notre boucle For:

    La boucle For vous servira a effectuer une action répétitive, je m’explique :

    Vous cherchez ( et personne ne sait pourquoi ! ) a additionner des nombres.

    1+0=1

    1+1=2

    1+2=3

    1+3=4

    1+4=5

    En Python on peut l’ecrire :

    print(1+0)
    print(1+1)
    print(1+2)
    print(1+3)
    print(1+4)
    print(1+5)

    « Print » nous sert a afficher le résultat de l’opération dans le « Log » en dessous. On a plus qu’a mettre l’opération désirée entre les parenthèses.

    Voici le résultat:

    Multiple Print Python

    La boucle For va nous simplifier la tache pour effectuer ce type d’opération , c’est d’ailleurs son rôle.

    En Python ca nous donne ça:

    for i in range(6):
    print(1+i)

    Le résultat dans l’éditeur :

     

    For with print loop

    Comme vous le voyez ici , on a pu écrire en 2 lignes ce qui était écrit en 6 lignes auparavant. Vous voyez l’intérêt du « For » ne serait-ce que pour simplifier votre code.

    Ici le i qui est une variable quelconque , j’aurait pu mettre n’importe quelle lettre ou mot que l’éditeur peut comprendre comme variable. Toutefois vous trouverez beaucoup de « i » et de « j » avec les « For » c’est utilisé par convention après libre a vous de mettre ce qui vous fait plaisir.

    Pour « in range(6): » l’éditeur comprendra de 0 a 6 , on pourrait changer la valeur pour voir ce que ca donne (on le fera !) . Le « : » marque le début de l’instruction qui peut être mise juste après le « :« ou a la ligne mais avec une « indentation« . L’indentation étant l’espace obligatoire pour que le python comprenne bien qu’il s’agit de l’instruction qui est liée au « For » au dessus.

    Ci dessus vous voyez ce qui se passe si l’on oublie l’espace devant l’instruction. Une autre chose a comprendre avec les indentations, il existe deux moyens de les faire , soit avec des espaces fait avec votre barre espace soit avec la Tabulation faite avec la touche « TAB » de votre clavier. personnellement j’utilise plutôt la touche « TAB » , mais attention vous ne pouvez pas mélanger les deux si vous commencez avec le « TAB » vous devrez toujours les faire de cette façon.

    Venons en a notre variable « i » dans l’instruction, ce qui se passe ici c’est qu’elle sera remplacée et exécutée autant de fois qu’il y aura de nombre entre 0 et 6 nous donnant le même résultat qu’avec les « print » mais en 2 lignes. Si on avait mit 200 , il l’aurait exécuté 200 fois.

    Utiliser la boucle For dans une liste

    Il est probable si vous programmez que vous ayez a passer les éléments d’une liste et bien vous pourrez travailler votre liste avec une boucle FOR, voici comment :

    liste=[« Jacky », »Steeve », »Sylvain », »Hugues », »Gael », »Mickael », »David »]

    for i in liste:
    print(i)

    Tout d’abord on déclare la liste de prénom, puis on place cette liste dans la boucle « For » comme ci-dessus, ensuite on envoi le résultat dans le log avec le print. Pour chaque prénom dans le tableau , la valeur sera copiée dans i puis utilisable dans l’instruction qui suit.

    liste python string

    Il est tout a fait possible de mettre la liste directement dans la boucle FOR , cela fonctionne de la même façon mais c’est quand même moins lisible surtout si la liste est longue ou si vous avez a effectuer d’autres opérations avec cette liste.

    for i in [« Jacky », »Steeve », »Sylvain », »Hugues », »Gael », »Mickael », »David »]:
    print(i)

    Le code fonctionnera de la même façon.

    Les boucles FOR imbriquées

    Il est possible d’imbriquer des boucles FOR ça s’avère utile si vous avez un tableau défini sur deux axes x, y ou encore sur 3 Axes pour de la 3D y, y , z. Je vais vous montrer de façon un peu plus ludique a quoi servent les boucles imbriquées . Je vais utiliser une bibliothèque qui s’appelle Tkinter pour vous créer des carrés de couleur et une boucle imbriquée pour afficher des carrés sur les deux axes en même temps.

    from tkinter import *

    fen_princ = Tk()
    fen_princ.title(« Test »)
    fen_princ.geometry(« 800×800 »)

    Canvas_afficheur = Canvas(fen_princ, width=800, height=800, bg=’black’)
    Canvas_afficheur.place(x=0,y=0)

    def cube(x_pos,y_pos):
    Canvas_afficheur.create_rectangle(x_pos, y_pos, x_pos+40, y_pos+40, fill= ‘red’)

     

    cube(0,0)

     

    fen_princ.mainloop()

    Voici la base sur laquelle nous allons faire l’exemple, si vous ne connaissez pas Tkinter ce n’est pas grave, comprenez juste que c’est le minimum pour faire afficher un carré rouge. Il y a dans ce code la création de la fenêtre , la définition de sa taille , le fond sur lequel on va venir poser notre carré et la fonction permettant de créer le carré rouge de 40 pixels par 40 pixels.

    Mais encore une fois ne vous inquiétez pas si vous ne le comprenez pas.

    Voici ce qu’il donne une fois lancé.

    Tkinter fenetre carré rouge sur canvas

    Comme on le voit on a un carré rouge à la position 0,0 comme prévu lorsque on lance la fonction « Cube » avec les coordonnées 0,0.

    Maintenant on va afficher 10 lignes de 10 carrés et c’est la que nous allons devoir faire une boucle imbriqué. Je vais devoir également définir des espaces pour ne pas qu’ils se recouvrent .

    for y in range(10):
    for x in range(10):
    cube(x*42,y*42)

    Mon carré faisant 40 de coté je me prévoit 2 pixels de limite pour ne pas qu’ils soient les uns sur les autres. Ici la boucle FOR va exécuter 100 fois la fonction cube (10×10) pour obtenir le résultat suivant :

    100-carres-tkinter boucle FOR imbriquées

     

    from tkinter import *

    fen_princ = Tk()
    fen_princ.title(« Test »)
    fen_princ.geometry(« 800×800 »)

    Canvas_afficheur = Canvas(fen_princ, width=800, height=800, bg=’black’)
    Canvas_afficheur.place(x=0,y=0)

    def cube(x_pos,y_pos):
    Canvas_afficheur.create_rectangle(x_pos, y_pos, x_pos+40, y_pos+40, fill= ‘red’)

     

    for y in range(10):
    for x in range(10):
    cube(x*42,y*42)

     

    fen_princ.mainloop()

    Voici le programme complet au dessus , j’espère que j’aurait été utile a quelques personnes qui veulent utiliser le Python , n’hésitez pas a commenter et a partager  !

    Sylvain Altmayer

     

     

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *