Outils pour utilisateurs

Outils du site


dev:python:structures-de-controle

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

dev/python/structures-de-controle.txt · Dernière modification : 2023/10/30 13:09 de yoann