{{tag>dev python}} ====== Structures de contrôle ====== ===== Structures conditionnelles ===== ==== if ==== if a_condition: # bloc a exécuter lorsque a_condition est vraie elif other_condition: # bloc a exécuter lorsque a condition est fausse # et other_condition est vraie else: # bloc a exécuter si les conditions précédentes sont fausses. ==== match ==== Pour les versions **Python > 3.10**, l'équivalent de la structure switch-case est **match** x = 3 match x: case 1: print("x est égal à 1") case 2: print("x est égal à 2") case 3: print("x est égal à 3") case 4: print("x est égal à 4") case _: print("x n'est pas égal à 1, 2, 3 ou 4") ==== Equivalents switch-case ==== Pour les version de **Python < 3.10**, la structure de contrôle **swicth case** n'existe pas. On peut la remplacer par des **if..elseif** ou utiliser les dictionnaires. if n == 0: print "n vaut zéro\n" elif n== 1 or n == 9 or n == 4: print "n est un carré\n" elif n == 2: print "n est pair\n" elif n== 3 or n == 5 or n == 7: print "n est premier\n La façon élégante et pythonienne consiste à s'appuyer sur la puissance des dictionnaires. On définit un dictionnaire ayant pour clés les différentes valeurs que peut prendre variable utilisée normalement dans le case et pour valeur respective la fonction de traitement. options = {0 : zero, 1 : sqr, 4 : sqr, 9 : sqr, 2 : even, 3 : prime, 5 : prime, 7 : prime, } def zero(): print "You typed zero.\n" def sqr(): print "n is a perfect square\n" def even(): print "n is an even number\n" def prime(): print "n is a prime number\n" Une fois définit il suffit options[num]() ===== Les boucles ===== ==== Boucle for ==== Exécuter un bloc d'instructions un nombre déterminé de fois. Pour traiter les éléments d'une liste ou un nombre connu d'éléments: for i in range(10): print i ==== Boucle while ==== Exécution du bloc d'instructions tant que la condition est vraie while ma_condition == True: instruction 1 instruction 2 ... instruction n ===== Equivalent do while ===== La boucle do while présente dans certains langages n'existe pas en Python. On construit son équivalent à partir de la boule while: Boucle do while en C do { instruction 1 instruction n } while(condition) Equivalent do while en Python: while True: instruction 1 instruction n if not condition: break ===== Références ===== * https://en.wikipedia.org/wiki/Do_while_loop#Python * https://bytebaker.com/2008/11/03/switch-case-statement-in-python/ * [[https://www.flallemand.fr/blog/posts/python_match/|L'instruction match (blog)]]